środa, 13 czerwca 2012

NodeJs, szybki start na Windows

JavaScript staje sie coraz bardziej popularnym i coraz bardziej dojrzalym językiem programowania wiec pora sprawdzić jaka siła dżemie w NodeJs.
NodeJs to JavaScript uruchamiany na maszynie wirtualnej Chrome. Taki serwer JavaScript mozna postawic samodzielnie lub wykorzystac juz istniejace, np. wsparcie od CloudFoundry.

W tym celu rejestrujemy się i ściagamy obraz Micro CloudFoundry. Opisywałem to już w jednym ze swoich postów, dlatego pominę szczegóły.

Żeby komunikować się z CloudFoundry potrzebujemy narzędzie vmc instalowane jako RubyGem.

1. Instalujemy Ruby pod Windowsem
http://docs.cloudfoundry.com/frameworks/ruby/installing-ruby.html#windows


2. Z Ruby shell updatujemy RubyGem

gem update --system


3. Instalujemy VMC


gem install vmc

4. Rejestrujemy docelowe srodowisko CloudFoundry,  w przypadku Micro CloudFroundry np:


vmc target http://api.piczkowski.cloudfoundry.me
gdzie piczkowski to nazwa mojego konta na CloudFoundry.

5. Logujemy sie do CloudFoundry swoim loginem i haslem podanymi przy konfiguracji obrazu Micro CloudFoundry

vmc login
Attempting login to [http://api.piczkowski.cloudfoundry.me]
Email: piczmar@wp.pl
Password: *********


 Aby wyswietlic liste dostepnych polecen:


vmc help


Teraz mozemy stworzyc prosta aplikacje NodeJs i zainstalowac na serwerze:
1. Sprawdzamy wersje zainstalowanego na serwerze NodeJs



vmc runtimes

2. Sciagamy taka sama wersje NodeJs z http://nodejs.org/dist/ gdzie wybieramy odpowiednia wersje i szukamy instalatora pod Windows *.msi
Po instalacji bedziemy mieli w zmiennych srodowiskowych program node.exe oraz npm.exe

node.exe
> process.versions
{ node: '0.6.5',
  v8: '3.6.6.11',
  ares: '1.7.5-DEV',
  uv: '0.6',
  openssl: '0.9.8r' }
>
3. Tworzymy folder projektu


mkdir hello-nodejs
cd hello-nodejs

4. Instalujemy modul 'express' przy użyciu Node Package Manager'a

npm install express

5. Tworzymy plik aplikacji app.js


var app = require('express').createServer();
app.get('/', function(req, res) {
    res.send('Hello from Cloud Foundry');
});
app.listen(process.env.VCAP_APP_PORT || 3000);
CloudFoundry udostepnia port nasluchujacy pod zmienna srodowiskowa process.env.VCAP_APP_PORT


6. Tworzymy plik z zaleznosciami package.json



{
 "name":"hello-node",
  "version":"0.0.1",
  "dependencies":{
      "express":""
  }
}

7. Instalujemy na CloudFoundry

vmc login
vmc push
E:\git\try-it-out\com.tryitout.nodejs\src\main\hello-nodejs>vmc push
Would you like to deploy from the current directory? [Yn]: y
Application Name: hello-nodejs
Detected a Node.js Application, is this correct? [Yn]: Y
Application Deployed URL [hello-nodejs.piczkowski.cloudfoundry.me]:
Memory reservation (128M, 256M, 512M, 1G, 2G) [64M]:
How many instances? [1]:
Create services to bind to 'hello-nodejs'? [yN]: N
Would you like to save this configuration? [yN]: y
Manifest written to manifest.yml.
Creating Application: OK
Uploading Application:
  Checking for available resources: OK
  Processing resources: OK
  Packing application: OK
  Uploading (271K): OK
Push Status: OK
Staging Application 'hello-nodejs': OK
Starting Application 'hello-nodejs': OK

8. Dzialajaca aplikacje mozemy teraz obejrzec pod adresem

 http://hello-nodejs.piczkowski.cloudfoundry.me


i wynik.. (niezbyt okazały...)


Wiecej tutoriali do sprawdzenia pod linkami:
http://blog.cloudfoundry.com/2012/05/24/cloud-foundry-supports-node-js-modules-with-npm/
http://howtonode.org/hello-node
http://blog.springsource.org/2011/05/03/using-mongodb-redis-node-js-and-spring-mvc-in-a-single-cloud-foundry-application/
http://attilamiklosi.net/blog/tag/nodejs/ http://docs.cloudfoundry.com/services/mongodb/nodejs-mongodb.html
http://docs.cloudfoundry.com/services/rabbitmq/nodejs-rabbitmq.html
http://blog.cloudfoundry.com/2012/05/17/node-activity-streams-app-1/
http://blog.cloudfoundry.com/2012/06/05/node-activity-streams-app-2/
http://coreh.github.com/nide/






Brak komentarzy:

Prześlij komentarz