Nodejs: mudanças entre as edições

De Pontão Nós Digitais
Ir para navegaçãoIr para pesquisar
Linha 7: Linha 7:
Como banco de dados, escolhi MongoDB. TODO: gravar como instalar e demo básico
Como banco de dados, escolhi MongoDB. TODO: gravar como instalar e demo básico


O node.js é baseado em eventos. TODO: explicar melhor node.js aqui
O node.js é uma API que permite entrada e saída orientada a eventos. Ou seja, não é preciso que existam vários processos rodando o tempo todo esperando conexões em uma porta. Basta que poucos processos rodem e disparem outros assim que eventos ocorrerem.
 
Isso é especialmente interessante para operações de IO. Programas provedores de serviços são um bom exemplo: um servidor HTTP pode responder somente quando for requisitado, permitindo atender a milhões de chamadas com poucos processos.
 
Por exemplo, para criarmos um servidor HTTP, deixá-lo escutando na porta 1337 localmente e depois mandar ele dormir e acordá-lo somente quando escutar alguma requisição, podemos fazer:


     var http = require('http');
     var http = require('http');
Linha 15: Linha 19:
     }).listen(1337, "127.0.0.1");
     }).listen(1337, "127.0.0.1");
     console.log('Server running at http://127.0.0.1:1337/');
     console.log('Server running at http://127.0.0.1:1337/');
== Express.js ==
Para facilitar o desenvolvimento usando node.js, usaremos express.js, um framework que facilita algumas rotinas de desenvolvimento básicas (routing de URLs, ...).
Usamos o aplicativo '''express''' no console para gerar o esqueleto inicial da nossa aplicação:
    $ express /home/vilson/src/labmacambira/gt-web/blog
Isso irá criar os seguintes arquivos:
    create : /home/vilson/src/labmacambira/gt-web/blog
    create : /home/vilson/src/labmacambira/gt-web/blog/package.json
    create : /home/vilson/src/labmacambira/gt-web/blog/app.js
    create : /home/vilson/src/labmacambira/gt-web/blog/public/javascripts
    create : /home/vilson/src/labmacambira/gt-web/blog/public/stylesheets
    create : /home/vilson/src/labmacambira/gt-web/blog/public/stylesheets/style.css
    create : /home/vilson/src/labmacambira/gt-web/blog/views
    create : /home/vilson/src/labmacambira/gt-web/blog/views/layout.jade
    create : /home/vilson/src/labmacambira/gt-web/blog/views/index.jade
    create : /home/vilson/src/labmacambira/gt-web/blog/public/images
Node que foram criados arquivos JS, arquivos de template HTML (usando Jade) e CSS, além de diretórios auxiliares como public/images.
Porém ainda não foram instaladas as dependências da nossa aplicação Web. O NPM nos ajuda novamente:
    $ cd blog
    $ npm install -d
O que esse comando faz é olhar o arquivo package.json e procurar pelas dependências (no caso, o próprio express e o jade), baixá-los e instalá-los no diretório node_modules.
Agora já podemos rodar nossa aplicação Web:
    $ node app.js
Aponte o browser para http://localhost:3000 e verá uma página inicial do Express.

Edição das 23h01min de 19 de julho de 2011

Introdução

Dia 1: Blog

Comecei instalando o node.js e express.js. TODO: gravar como instalar

Como banco de dados, escolhi MongoDB. TODO: gravar como instalar e demo básico

O node.js é uma API que permite entrada e saída orientada a eventos. Ou seja, não é preciso que existam vários processos rodando o tempo todo esperando conexões em uma porta. Basta que poucos processos rodem e disparem outros assim que eventos ocorrerem.

Isso é especialmente interessante para operações de IO. Programas provedores de serviços são um bom exemplo: um servidor HTTP pode responder somente quando for requisitado, permitindo atender a milhões de chamadas com poucos processos.

Por exemplo, para criarmos um servidor HTTP, deixá-lo escutando na porta 1337 localmente e depois mandar ele dormir e acordá-lo somente quando escutar alguma requisição, podemos fazer:

   var http = require('http');
   http.createServer(function (req, res) {
     res.writeHead(200, {'Content-Type': 'text/plain'});
     res.end('Hello World\n');
   }).listen(1337, "127.0.0.1");
   console.log('Server running at http://127.0.0.1:1337/');

Express.js

Para facilitar o desenvolvimento usando node.js, usaremos express.js, um framework que facilita algumas rotinas de desenvolvimento básicas (routing de URLs, ...).

Usamos o aplicativo express no console para gerar o esqueleto inicial da nossa aplicação:

   $ express /home/vilson/src/labmacambira/gt-web/blog

Isso irá criar os seguintes arquivos:

   create : /home/vilson/src/labmacambira/gt-web/blog
   create : /home/vilson/src/labmacambira/gt-web/blog/package.json
   create : /home/vilson/src/labmacambira/gt-web/blog/app.js
   create : /home/vilson/src/labmacambira/gt-web/blog/public/javascripts
   create : /home/vilson/src/labmacambira/gt-web/blog/public/stylesheets
   create : /home/vilson/src/labmacambira/gt-web/blog/public/stylesheets/style.css
   create : /home/vilson/src/labmacambira/gt-web/blog/views
   create : /home/vilson/src/labmacambira/gt-web/blog/views/layout.jade
   create : /home/vilson/src/labmacambira/gt-web/blog/views/index.jade
   create : /home/vilson/src/labmacambira/gt-web/blog/public/images

Node que foram criados arquivos JS, arquivos de template HTML (usando Jade) e CSS, além de diretórios auxiliares como public/images.

Porém ainda não foram instaladas as dependências da nossa aplicação Web. O NPM nos ajuda novamente:

   $ cd blog
   $ npm install -d

O que esse comando faz é olhar o arquivo package.json e procurar pelas dependências (no caso, o próprio express e o jade), baixá-los e instalá-los no diretório node_modules.

Agora já podemos rodar nossa aplicação Web:

   $ node app.js

Aponte o browser para http://localhost:3000 e verá uma página inicial do Express.