Nodejs Intro William Dias

14
William Dias [email protected] Introdução a

description

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.

Transcript of Nodejs Intro William Dias

Page 1: Nodejs Intro William Dias

William Dias

[email protected]

Introdução a

Page 2: Nodejs Intro William Dias

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: [email protected]: twitter.com/diaswrdFacebook: facebook.com/diaswrdGithub: github.com/diaswrd

Sobre mim

Page 3: Nodejs Intro William Dias

Mas então...

O que é node.js?

Page 4: Nodejs Intro William Dias

* 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.

Page 5: Nodejs Intro William Dias

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.

I/O não bloqueante

Page 6: Nodejs Intro William Dias

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 */

I/O não bloqueante

Page 7: Nodejs Intro William Dias

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/');

Exemplo de código

Page 8: Nodejs Intro William Dias

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)

node.js modules

Page 9: Nodejs Intro William Dias

Exemplos de aplicações

Page 10: Nodejs Intro William Dias

Exemplos de aplicações

Page 11: Nodejs Intro William Dias

Exemplos de aplicações

Page 12: Nodejs Intro William Dias

Exemplos de aplicações

Page 13: Nodejs Intro William Dias

Simple Isometric Node.js Game Concept Demo

https://github.com/diaswrd/Singd

http://fierce-sky-691.herokuapp.com

Page 14: Nodejs Intro William Dias

Muito obrigado!

Perguntas?

[email protected]