Introdução a




   William Dias

wrddias@gmail.com
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
Mas então...

O que é node.js?
* 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.
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.
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 */
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/');
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)
Exemplos de aplicações
Exemplos de aplicações
Exemplos de aplicações
Exemplos de aplicações
Simple Isometric Node.js Game Concept Demo

      https://github.com/diaswrd/Singd

     http://fierce-sky-691.herokuapp.com
Muito obrigado!

   Perguntas?

wrddias@gmail.com

Nodejs Intro William Dias

  • 1.
    Introdução a William Dias wrddias@gmail.com
  • 2.
    Sobre mim Estudante deCiê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
  • 3.
  • 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 Comonossas 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 varhttp = 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 extremamenteativa, 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)
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
    Simple Isometric Node.jsGame Concept Demo https://github.com/diaswrd/Singd http://fierce-sky-691.herokuapp.com
  • 14.
    Muito obrigado! Perguntas? wrddias@gmail.com