Archive | fevereiro 2014

Conhecendo o Node.js #2

Olá novamente bípedes.

Continuando a série(!?) de posts sobre Node.js, falarei hoje sobre os parâmetros enviados por URLs e como utilizá-los no javascript. Será um post curto e simples, mas possivelmente útil.

Muito bem, como vimos no post anterior, o Node.js utilizao o CommonJS para separar e modularizar seus arquivos de forma organizada. Portanto, para termos acesso aos métodos de tratamento de URLs, devemos incluir o módulo ‘url’:

var url = require("url");

Com o módulo url em mãos, podemos utilizar seus métodos para recuperar os parâmetros da URL:

var params = url.parse(urlString, true).query;

Aqui, o método parse transforma os TODA a URL em um objeto. Neste exemplo, ele recebe dois parâmetros:

  1. A própria URL em forma de string;
  2. Um boolean que define se os parâmetro e valores da URL serão mostrados no objetos que o método irá retornar.

O método parse retorna um objeto que tem atributos como path, rost, port e claro, os parâmetros da URL(se o segundo parâmetro for true). Um exemplo do objeto:

{ 
  protocol: null,
  slashes: null,
  auth: null,
  host: null,
  port: null,
  hostname: null,
  hash: null,
  search: '?Numero=5&Nome=Jean',
  query: { Numero: '5', Nome: 'Jean' },
  pathname: '/',
  path: '/?Numero=5&Nome=Jean',
  href: '/?Numero=5&Nome=Jean' 
}

Como só precisamos dos parâmetros passados pela URL nesse momento, requisitamos apenas o atributos query do objeto retornado. Assim, temos todos os parâmetros em um objeto, facilmente manipulável:

var nome = params.Nome;
var numero = params.Numero;

É importante lembrar que tudo isso é case-sensitive. Se eu chamar localhost/?NumBeR=5, o atributo no javascript será o mesmo ou seja, params.NumBeR.

Dito tudo isso, aqui vai um exemplo simples de tudo mencionado acima:

var http = require("http");
var url = require("url");

http.createServer(function (request, response)
{
    response.writeHead(200, { "Content-Type": "text/plain" });

    var params = url.parse(request.url, true).query;
    var nome = params.Nome;

    response.write("May the force be with you, " + nome);

    response.end();
}).listen(80);

console.log("Rodando...");
Anúncios

Conhecendo o Node.js

Bom dia, boa tarde e boa noite pequenos gafanhotos.

Hoje falarei o básico do básico do Node.js. Quem é ele? Para que serve? Onde vive? Do que se alimenta?

Node.js é uma plataforma utilizada para criar aplicações server-side de alta escalabilidade. Ele é capaz de gerir um grande número de requisições simultaneamente como um servidor web, em uma única máquina física. E o mais incrível disso tudo, programando em Javascript! Exato, javascript para o back-end. Node.js utiliza o interpretador V8 de javascript do Chrome para executar todas as suas gambiarras códigos no servidor também.

Node.js is a platform built on Chrome’s JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.

Podemos começar com uma aplicação simples, então? Criaremos um web server. Primeiro, baixe o Node.js e instale-o aqui. É só seguir as instruções no instalador, extremamente simples:

Imagem

Após a instalação, podemos criar nosso primeiro script para rodar no Node.js. Vamos utilzar o exemplo do próprio site do Node como exemplo:

//Precisaremos do módulo http para esse webserver, então devemos incluí-lo
var http = require('http');

http.createServer(function (req, res) {

  //No Node, precisamos definir o header manualmente de acordo com o tipo de dados que deseja transmitir
  res.writeHead(200, { 'Content-Type': 'text/plain' });

  //Escrevendo o retorno
  res.write("Hello World!");

  //A conexão deve ser fechada manualmente
  res.end();

}).listen(1337, '127.0.0.1');

console.log('Server running at http://127.0.0.1:1337/');

O Node.js utiliza o CommonJS como sistema de modularização. Isso evita o caos que geralmente acontece ao desenvolver com javascript em vários arquivos. Portanto, devemos utilizar o método require para cada novo módulo que necessitarmos. Neste caso, como é um simples web server, utilizaremos apenas o ‘http’.

Salve esse arquivo como hello.js. Após isso, acesse o diretório onde o arquivo está salvo via cmd, e use o comando node hello.js:

Imagem

Com o servidor rodando, acesse a URL indicada no Hello.js (localhost:1337) pelo navegador, e as palavras mágicas devem aparecer:

Imagem

É bom lembrar que enquanto o servidor Node estiver rodando, o cmd vai estar ‘travado’. Para fechar o servidor, pressione CTRL + C.