28
Hernan Garcia http://www.slideshare.net/ hdgarcia/ @theprogrammer http://dynamicprogrammer.com [email protected] http://github.com/hgarcia

Node js Alt.net Hispano

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Node js Alt.net Hispano

Hernan Garciahttp://www.slideshare.net/hdgarcia/ @theprogrammerhttp://[email protected]://github.com/hgarcia

Page 2: Node js Alt.net Hispano

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

Page 3: Node js Alt.net Hispano

image: http://platformjs.wordpress.com/2010/11/24/node-js-under-the-hood/

Escribes codigo en JavaScript.Usas las librerias de nodeNode tiene bindings en C con el sistema operativo.Utiliza V8 como el motor para ejecutar JavaScript.

Page 4: Node js Alt.net Hispano

Single thread por requestNunca 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

Page 5: Node js Alt.net Hispano

image: http://xkcd.com/303/traducción: http://www.abadiadigital.com/articulo/chistes-para-programadores

*nix (code - compile)*nix con nwindows en cygwin

Page 6: Node js Alt.net Hispano

image: http://reanimatepc.com/content/how-tell-if-your-windows-loads-or-not

en v0.5.1 salió el primer exe nativo para windowsMS esta ayudandoSoporte completo en v 0.6.0

Page 7: Node js Alt.net Hispano

node.js que es y como instalarlo?

Hola node, callbacks o no callbacksSobre modules, exports y CommonJs Npm (manejo de paquetes) Creando eventos. Bases de dato Crear y publicar un paquete con npm

Page 8: Node js Alt.net Hispano

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

Page 9: Node js Alt.net Hispano

var http = require('http');var mongodm = require('mongodm'); http.createServer(function (req, res) {    mongodm.withDatabase("altnet",  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, "127.0.0.1");

console.log('Servidor en http://127.0.0.1:8080/');

Page 10: Node js Alt.net Hispano

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

Page 11: Node js Alt.net Hispano

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

Page 12: Node js Alt.net Hispano

CommonJs es un "standard".Hay varias implementaciones.Node implementa un subset de esos standards.Modules 1.0Promises/B y Promises/DUnit testing.El mas importante (para entender node y su ecosistema) es modules.

http://www.commonjs.org/specs/

Page 13: Node js Alt.net Hispano

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)

Page 14: Node js Alt.net Hispano

Podemos crear la idea de private scope con modules.

image: http://www.finankorr.net/?page_id=13

Page 15: Node js Alt.net Hispano

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

Page 16: Node js Alt.net Hispano

node.js que es y como instalarlo?Hola node, callbacks o no callbacksSobre modules, exports y CommonJs

Npm (manejo de paquetes) Creando eventos. Bases de dato Crear y publicar un paquete con npm

Page 17: Node js Alt.net Hispano

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

Page 18: Node js Alt.net Hispano

npm installnpm install underscorenpm ls installednpm lsnpm uninstall underscorenpm install -gnpm installed hgarcianpm update

image: http://nodej.org

Page 19: Node js Alt.net Hispano

node.js que es y como instalarlo?Hola node, callbacks o no callbacksSobre modules, exports y CommonJs Npm (manejo de paquetes)

Creando eventos. Bases de dato Crear y publicar un paquete con npm

Page 20: Node js Alt.net Hispano

Usar EventEmitter

Exponer los eventos.

Listo.

image: http://www.codeandbeyond.org/2011/04/recursos-gratuitos-para-empezar-con.html

Page 21: Node js Alt.net Hispano

node.js que es y como instalarlo?Hola node, callbacks o no callbacksSobre modules, exports y CommonJs Npm (manejo de paquetes) Creando eventos. 

Bases de dato Crear y publicar un paquete con npm

Page 22: Node js Alt.net Hispano

Similar a otras tecnologias.Drivers y/o ORM.Trabaja muy bien con soluciones NoSql.• MongoDB• CouchDB

Page 23: Node js Alt.net Hispano

node.js que es y como instalarlo?Hola node, callbacks o no callbacksSobre modules, exports y CommonJs Npm (manejo de paquetes) Creando eventos. Bases de dato

Crear y publicar un paquete con npm

Page 24: Node js Alt.net Hispano

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. {    "name": "super paquete",    "version": "0.1.1",    "main": "file.js"} Linkea el paquete para poder testear mas facilmente > npm link

Page 25: Node js Alt.net Hispano

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

Page 26: Node js Alt.net Hispano

Hidden level

TestingDebugging

Page 27: Node js Alt.net Hispano

Vows

Page 28: Node js Alt.net Hispano

node-inspector Instalar chrome> npm install v8-profiler> npm install node-inspector