Hernan Garcia http://www.slideshare.net/hdgarcia/  @theprogrammer http://dynamicprogrammer.com [email_address] http://github.com/hgarcia
node.js Qué es y como instalarlo? Hola node, callbacks o no callbacks. Sobre modules, exports y CommonJs  Npm (manejo de paquetes)  Creando eventos.   Bases de dato  Crear y publicar un paquete con npm
image:  http://platformjs.wordpress.com/2010/11/24/node-js-under-the-hood/ Escribes codigo en JavaScript. Usas las librerias de node Node tiene bindings en C con el sistema operativo. Utiliza V8 como el motor para ejecutar JavaScript.
Single thread por request Nunca bloquea (no espera) IO publica eventos (no bloquea) Callbacks es la clave image:  http://www.salagraphics.com/index.php?main_page=product_info&cPath=6&products_id=114
image:  http://xkcd.com/303/ traducción:  http://www.abadiadigital.com/articulo/chistes-para-programadores  *nix (code - compile) *nix con n windows en cygwin
image:  http://reanimatepc.com/content/how-tell-if-your-windows-loads-or-not en v0.5.1 salió el primer exe nativo para windows MS esta ayudando Soporte completo en v 0.6.0
node.js que es y como instalarlo? Hola node, callbacks o no callbacks Sobre modules, exports y CommonJs  Npm (manejo de paquetes)  Creando eventos.  Bases de dato   Crear y publicar un paquete con npm
http://nodejs.org var http = require('http'); http.createServer( function (req, res) {     res.writeHead(200, {'Content-Type': 'text/plain'});     res.end('Hola Alt.Net\n'); } ).listen(8080, "127.0.0.1"); console.log('Servidor en http://127.0.0.1:8080/');
var http = require('http'); var mongodm = require('mongodm');   http.createServer(function (req, res) {     mongodm.withDatabase(&quot;altnet&quot;,  function (err, db) {            if (err) {             res.writeHead(500, {'Content-Type': 'text/plain'});             res.end(err);         } else {             db.withCollection('sessions', function (err, collection) {                 if (err) {                                   res.writeHead(500, {'Content-Type': 'text/plain'});                     res.end(err);                                     } else {                                         collection.find( function (err, resultArray) {                                                 var response = 'Make it here\n';                                                 for (var i = 0; i < resultArray.length; (i += 1)) {                             response += resultArray[i].title + '\n';                         }                         res.writeHead(200, {'Content-Type': 'text/plain'});                                             res.end(response);                     });                     }             });         }     }); }).listen(8080, &quot;127.0.0.1&quot;); console.log('Servidor en http://127.0.0.1:8080/');
image:  http://www.apajcan.org/ Librerias para el control de flujo.  https://github.com/joyent/node/wiki/modules#wiki-async-flow/joyent/node/wiki/modules#wiki-async-flow
node.js que es y como instalarlo? Hola node, callbacks o no callbacks Sobre modules, exports y CommonJs  Npm (manejo de paquetes)  Creando eventos.  Bases de dato   Crear y publicar un paquete con npm
CommonJs es un &quot;standard&quot;. Hay varias implementaciones. Node implementa un subset de esos standards. Modules 1.0 Promises/B y Promises/D Unit testing. El mas importante (para entender node y su ecosistema) es modules. http://www.commonjs.org/specs/
Modules nos da los mecanismos para crear codigo reusable sin afectar el scope global. Modules (funciones y objectos) require (function usada por el cargador de modulos) exports (objecto usado para exponer la api de un modulo)
Podemos crear la idea de private scope con modules. image:  http://www.finankorr.net/?page_id=13
Resolucion de modulos. Globales (node version) Proyecto File System require.paths  require.resolve('mongodm')  image:  http://walkkingdisaster.blogspot.com/2011/07/es-como-todo-lentamente-se-desmorona-al.html
node.js que es y como instalarlo? Hola node, callbacks o no callbacks Sobre modules, exports y CommonJs  Npm (manejo de paquetes)  Creando eventos.  Bases de dato   Crear y publicar un paquete con npm
Al principio hubo varios. npm es el de facto standard. Node Package Manager. compatible con Git. Super facil de usar. Soporta versioning,  Instalacion global y por proyecto. Maneja dependencias. Compila codigo nativo. Mas... image:  http://nodej.org
npm install npm install underscore npm ls installed npm ls npm uninstall underscore npm install -g npm installed hgarcia npm update image:  http://nodej.org
node.js que es y como instalarlo? Hola node, callbacks o no callbacks Sobre modules, exports y CommonJs  Npm (manejo de paquetes)  Creando eventos.   Bases de dato  Crear y publicar un paquete con npm
Usar EventEmitter Exponer los eventos. Listo. image:  http://www.codeandbeyond.org/2011/04/recursos-gratuitos-para-empezar-con.html
node.js que es y como instalarlo? Hola node, callbacks o no callbacks Sobre modules, exports y CommonJs  Npm (manejo de paquetes)  Creando eventos.  Bases de dato  Crear y publicar un paquete con npm
Similar a otras tecnologias. Drivers y/o ORM. Trabaja muy bien con soluciones NoSql. MongoDB CouchDB
node.js que es y como instalarlo? Hola node, callbacks o no callbacks Sobre modules, exports y CommonJs  Npm (manejo de paquetes)  Creando eventos.  Bases de dato  Crear y publicar un paquete con npm
image:  http://walkkingdisaster.blogspot.com/2011/07/es-como-todo-lentamente-se-desmorona-al.html Crea un archivo package.jsonen el root de tu proyecto.  {      &quot;name&quot;: &quot;super paquete&quot;,      &quot;version&quot;: &quot;0.1.1&quot;,      &quot;main&quot;: &quot;file.js&quot; }   Linkea el paquete para poder testear mas facilmente  > npm link
image:  http://walkkingdisaster.blogspot.com/2011/07/es-como-todo-lentamente-se-desmorona-al.html Crea una cuenta en npm > npm adduser <username> <pass> <email> En el root de tu paquete > npm publish
Hidden level Testing Debugging
Vows
node-inspector   Instalar chrome > npm install v8-profiler > npm install node-inspector

Node js Alt.net Hispano

  • 1.
    Hernan Garcia http://www.slideshare.net/hdgarcia/ @theprogrammer http://dynamicprogrammer.com [email_address] http://github.com/hgarcia
  • 2.
    node.js Qué esy como instalarlo? Hola node, callbacks o no callbacks. Sobre modules, exports y CommonJs Npm (manejo de paquetes) Creando eventos.   Bases de dato Crear y publicar un paquete con npm
  • 3.
    image: http://platformjs.wordpress.com/2010/11/24/node-js-under-the-hood/Escribes codigo en JavaScript. Usas las librerias de node Node tiene bindings en C con el sistema operativo. Utiliza V8 como el motor para ejecutar JavaScript.
  • 4.
    Single thread porrequest Nunca bloquea (no espera) IO publica eventos (no bloquea) Callbacks es la clave image: http://www.salagraphics.com/index.php?main_page=product_info&cPath=6&products_id=114
  • 5.
    image: http://xkcd.com/303/traducción: http://www.abadiadigital.com/articulo/chistes-para-programadores *nix (code - compile) *nix con n windows en cygwin
  • 6.
    image: http://reanimatepc.com/content/how-tell-if-your-windows-loads-or-noten v0.5.1 salió el primer exe nativo para windows MS esta ayudando Soporte completo en v 0.6.0
  • 7.
    node.js que esy como instalarlo? Hola node, callbacks o no callbacks Sobre modules, exports y CommonJs Npm (manejo de paquetes) Creando eventos.  Bases de dato Crear y publicar un paquete con npm
  • 8.
    http://nodejs.org var http= require('http'); http.createServer( function (req, res) {     res.writeHead(200, {'Content-Type': 'text/plain'});     res.end('Hola Alt.Net\n'); } ).listen(8080, &quot;127.0.0.1&quot;); console.log('Servidor en http://127.0.0.1:8080/');
  • 9.
    var http =require('http'); var mongodm = require('mongodm');   http.createServer(function (req, res) {     mongodm.withDatabase(&quot;altnet&quot;,  function (err, db) {           if (err) {             res.writeHead(500, {'Content-Type': 'text/plain'});             res.end(err);         } else {             db.withCollection('sessions', function (err, collection) {                if (err) {                                  res.writeHead(500, {'Content-Type': 'text/plain'});                     res.end(err);                                    } else {                                        collection.find( function (err, resultArray) {                                                var response = 'Make it here\n';                                                 for (var i = 0; i < resultArray.length; (i += 1)) {                             response += resultArray[i].title + '\n';                         }                         res.writeHead(200, {'Content-Type': 'text/plain'});                                             res.end(response);                     });                     }             });         }     }); }).listen(8080, &quot;127.0.0.1&quot;); console.log('Servidor en http://127.0.0.1:8080/');
  • 10.
    image: http://www.apajcan.org/Librerias para el control de flujo. https://github.com/joyent/node/wiki/modules#wiki-async-flow/joyent/node/wiki/modules#wiki-async-flow
  • 11.
    node.js que esy como instalarlo? Hola node, callbacks o no callbacks Sobre modules, exports y CommonJs Npm (manejo de paquetes) Creando eventos.  Bases de dato Crear y publicar un paquete con npm
  • 12.
    CommonJs es un&quot;standard&quot;. Hay varias implementaciones. Node implementa un subset de esos standards. Modules 1.0 Promises/B y Promises/D Unit testing. El mas importante (para entender node y su ecosistema) es modules. http://www.commonjs.org/specs/
  • 13.
    Modules nos dalos mecanismos para crear codigo reusable sin afectar el scope global. Modules (funciones y objectos) require (function usada por el cargador de modulos) exports (objecto usado para exponer la api de un modulo)
  • 14.
    Podemos crear laidea de private scope con modules. image: http://www.finankorr.net/?page_id=13
  • 15.
    Resolucion de modulos.Globales (node version) Proyecto File System require.paths  require.resolve('mongodm') image: http://walkkingdisaster.blogspot.com/2011/07/es-como-todo-lentamente-se-desmorona-al.html
  • 16.
    node.js que esy como instalarlo? Hola node, callbacks o no callbacks Sobre modules, exports y CommonJs Npm (manejo de paquetes) Creando eventos.  Bases de dato Crear y publicar un paquete con npm
  • 17.
    Al principio hubovarios. npm es el de facto standard. Node Package Manager. compatible con Git. Super facil de usar. Soporta versioning,  Instalacion global y por proyecto. Maneja dependencias. Compila codigo nativo. Mas... image: http://nodej.org
  • 18.
    npm install npminstall underscore npm ls installed npm ls npm uninstall underscore npm install -g npm installed hgarcia npm update image: http://nodej.org
  • 19.
    node.js que esy como instalarlo? Hola node, callbacks o no callbacks Sobre modules, exports y CommonJs Npm (manejo de paquetes) Creando eventos.   Bases de dato Crear y publicar un paquete con npm
  • 20.
    Usar EventEmitter Exponerlos eventos. Listo. image: http://www.codeandbeyond.org/2011/04/recursos-gratuitos-para-empezar-con.html
  • 21.
    node.js que esy como instalarlo? Hola node, callbacks o no callbacks Sobre modules, exports y CommonJs Npm (manejo de paquetes) Creando eventos.  Bases de dato Crear y publicar un paquete con npm
  • 22.
    Similar a otrastecnologias. Drivers y/o ORM. Trabaja muy bien con soluciones NoSql. MongoDB CouchDB
  • 23.
    node.js que esy como instalarlo? Hola node, callbacks o no callbacks Sobre modules, exports y CommonJs Npm (manejo de paquetes) Creando eventos.  Bases de dato Crear y publicar un paquete con npm
  • 24.
    image: http://walkkingdisaster.blogspot.com/2011/07/es-como-todo-lentamente-se-desmorona-al.htmlCrea un archivo package.jsonen el root de tu proyecto.  {      &quot;name&quot;: &quot;super paquete&quot;,      &quot;version&quot;: &quot;0.1.1&quot;,      &quot;main&quot;: &quot;file.js&quot; }   Linkea el paquete para poder testear mas facilmente > npm link
  • 25.
    image: http://walkkingdisaster.blogspot.com/2011/07/es-como-todo-lentamente-se-desmorona-al.htmlCrea una cuenta en npm > npm adduser <username> <pass> <email> En el root de tu paquete > npm publish
  • 26.
  • 27.
  • 28.
    node-inspector   Instalarchrome > npm install v8-profiler > npm install node-inspector