Slides de Introdução à Node.js apresentados nas palestras relâmpago realizadas em 15 de Agosto de 2011 na FATEC e organizado pelo grupo TcheLinux em Pelotas/RS.
2. Sobre mim
Estudante de Ciência da Computação na UFPel.
Desenvolvedor HTML/Javascript na Conrad-Caine GmbH.
Gamer nas horas vagas, apaixonado por novas tecnologias de
desenvolvimento web e atualmente explorando o ramo de
desenvolvimento de jogos em HTML/Javascript.
Contato: wrddias@gmail.com
Twitter: twitter.com/diaswrd
Facebook: facebook.com/diaswrd
Github: github.com/diaswrd
4. * Javascript server-side.
* Orientado a eventos, I/O não bloqueante.
Inspirado em EventMachine (Ruby) e
Twisted (Python).
* Contruído utilizando a Engine V8 do
Google.
* Criado para suportar várias conexões
simultâneas em uma única aplicação.
5. I/O não bloqueante
Como nossas querys são geralmente escritas:
DatabaseQuery(“select * from clientes where ...”);
//Usar o resultado
Nesse caso, geralmente o fluxo da sua aplicação fica travado para
aquele usuário, esperando para seguir em frente somente após
receber o resultado da consulta ao banco de dados.
6. I/O não bloqueante
Como é o comportamento de I/O não bloqueante:
DatabaseQuery(“select … ”, function() {
//Usar o resultado
});
/* O fluxo da aplicação continua mesmo antes da query
retornar algum resultado */
7. Exemplo de código
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello Worldn');
}).listen(1337, "127.0.0.1");
console.log('Server running at http://127.0.0.1:1337/');
8. node.js modules
Comunidade extremamente ativa, tendo quase 1000 módulos
publicados (https://github.com/joyent/node/wiki/modules).
Alguns exemplos:
* Express (http://expressjs.com/)
* Socket.IO (http://socket.io/)
* node-xml2js (https://github.com/Leonidas-from-XIV/node-xml2js)
* mongoose (https://github.com/LearnBoost/mongoose)
* node-mysql (https://github.com/felixge/node-mysql)