Nodejs

De Pontão Nós Digitais

Tutoriais

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.