Mudanças entre as edições de "Nodejs"

De Pontão Nós Digitais
(Dia 1: Blog)
 
(3 revisões intermediárias por 3 usuários não estão sendo mostradas)
Linha 1: Linha 1:
= Introdução =
+
== Tutoriais ==
 +
 
 +
* [[Nodejs - Como instalar?]]
  
 
= Dia 1: Blog =
 
= Dia 1: Blog =
Linha 7: Linha 9:
 
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 21:
 
     }).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.
 +
 +
[[Category:Lab Macambira]]

Edição atual tal como às 17h00min de 11 de julho de 2016

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.