Nodejs
Introdução
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.