Node js Alt.net Hispano
-
Upload
hdgarcia -
Category
Technology
-
view
1.059 -
download
1
description
Transcript of Node js Alt.net Hispano
Hernan Garciahttp://www.slideshare.net/hdgarcia/ @theprogrammerhttp://[email protected]://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 nodeNode tiene bindings en C con el sistema operativo.Utiliza V8 como el motor para ejecutar JavaScript.
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
image: http://xkcd.com/303/traducción: http://www.abadiadigital.com/articulo/chistes-para-programadores
*nix (code - compile)*nix con nwindows 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 windowsMS esta ayudandoSoporte completo en v 0.6.0
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
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("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/');
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 "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/
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 callbacksSobre 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 installnpm install underscorenpm ls installednpm lsnpm uninstall underscorenpm install -gnpm installed hgarcianpm update
image: http://nodej.org
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
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 callbacksSobre 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 callbacksSobre 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. { "name": "super paquete", "version": "0.1.1", "main": "file.js"} 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
TestingDebugging
Vows
node-inspector Instalar chrome> npm install v8-profiler> npm install node-inspector