SlideShare a Scribd company logo
1 of 28
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'); } ).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';                                                 for (var i = 0; i < resultArray.length; (i += 1)) {                             response += resultArray[i].title + '';                         }                         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/
[object Object],[object Object],[object Object],[object Object]
Podemos crear la idea de private scope con modules. image:  http://www.finankorr.net/?page_id=13
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],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
[object Object],[object Object],[object Object],[object Object],[object Object]
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

More Related Content

What's hot

Taller introduccion symfony2
Taller introduccion symfony2Taller introduccion symfony2
Taller introduccion symfony2Mario IC
 
Introducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGRIntroducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGRJuan Belón Pérez
 
Desde el DVR hasta la cocina
Desde el DVR hasta la cocinaDesde el DVR hasta la cocina
Desde el DVR hasta la cocinaEfren Diaz Gomez
 
Atom.io el editor definitivo VS PhpStorm el editor definitivo
Atom.io el editor definitivo VS PhpStorm el editor definitivoAtom.io el editor definitivo VS PhpStorm el editor definitivo
Atom.io el editor definitivo VS PhpStorm el editor definitivoBiko
 
Ventaja del uso de las Funciones en PHP
Ventaja del uso de las Funciones en PHPVentaja del uso de las Funciones en PHP
Ventaja del uso de las Funciones en PHPJC Marley
 
Introduccion a Nodejs
Introduccion a NodejsIntroduccion a Nodejs
Introduccion a NodejsJan Sanchez
 
José Ramón Palanco - NoSQL Security [RootedCON 2011]
José Ramón Palanco - NoSQL Security [RootedCON 2011]José Ramón Palanco - NoSQL Security [RootedCON 2011]
José Ramón Palanco - NoSQL Security [RootedCON 2011]RootedCON
 
Cambia la forma de desarrollar tus aplicaciones web con groovy y grails
Cambia la forma de desarrollar tus aplicaciones web con groovy y grailsCambia la forma de desarrollar tus aplicaciones web con groovy y grails
Cambia la forma de desarrollar tus aplicaciones web con groovy y grailsFátima Casaú Pérez
 
Rompiendo paradigmas
Rompiendo paradigmasRompiendo paradigmas
Rompiendo paradigmasZuriel Diaz
 

What's hot (20)

Iniciacion a PHP (I)
Iniciacion a PHP (I)Iniciacion a PHP (I)
Iniciacion a PHP (I)
 
Taller introduccion symfony2
Taller introduccion symfony2Taller introduccion symfony2
Taller introduccion symfony2
 
Introducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGRIntroducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGR
 
Grails
GrailsGrails
Grails
 
Introducción a Node.js
Introducción a Node.jsIntroducción a Node.js
Introducción a Node.js
 
Desde el DVR hasta la cocina
Desde el DVR hasta la cocinaDesde el DVR hasta la cocina
Desde el DVR hasta la cocina
 
Atom.io el editor definitivo VS PhpStorm el editor definitivo
Atom.io el editor definitivo VS PhpStorm el editor definitivoAtom.io el editor definitivo VS PhpStorm el editor definitivo
Atom.io el editor definitivo VS PhpStorm el editor definitivo
 
Ventaja del uso de las Funciones en PHP
Ventaja del uso de las Funciones en PHPVentaja del uso de las Funciones en PHP
Ventaja del uso de las Funciones en PHP
 
Introduccion a Nodejs
Introduccion a NodejsIntroduccion a Nodejs
Introduccion a Nodejs
 
José Ramón Palanco - NoSQL Security [RootedCON 2011]
José Ramón Palanco - NoSQL Security [RootedCON 2011]José Ramón Palanco - NoSQL Security [RootedCON 2011]
José Ramón Palanco - NoSQL Security [RootedCON 2011]
 
Introducción a groovy & grails
Introducción a groovy & grailsIntroducción a groovy & grails
Introducción a groovy & grails
 
Taller de Capistrano
Taller de CapistranoTaller de Capistrano
Taller de Capistrano
 
Django
DjangoDjango
Django
 
Dar lab1819
Dar lab1819Dar lab1819
Dar lab1819
 
Php Con Postgres
Php Con PostgresPhp Con Postgres
Php Con Postgres
 
Introduccion A Groovy
Introduccion A GroovyIntroduccion A Groovy
Introduccion A Groovy
 
Cambia la forma de desarrollar tus aplicaciones web con groovy y grails
Cambia la forma de desarrollar tus aplicaciones web con groovy y grailsCambia la forma de desarrollar tus aplicaciones web con groovy y grails
Cambia la forma de desarrollar tus aplicaciones web con groovy y grails
 
Introducción a Groovy
Introducción a GroovyIntroducción a Groovy
Introducción a Groovy
 
Rompiendo paradigmas
Rompiendo paradigmasRompiendo paradigmas
Rompiendo paradigmas
 
Segunda clase, del curso de Microcomputadoras
Segunda clase, del curso de MicrocomputadorasSegunda clase, del curso de Microcomputadoras
Segunda clase, del curso de Microcomputadoras
 

Similar to Node js Alt.net Hispano

Desarrollo web en Nodejs con Pillars por Chelo Quilón
Desarrollo web en Nodejs con Pillars por Chelo QuilónDesarrollo web en Nodejs con Pillars por Chelo Quilón
Desarrollo web en Nodejs con Pillars por Chelo Quilónbetabeers
 
Mootools Y Otros Frameworks JS
Mootools Y Otros Frameworks JSMootools Y Otros Frameworks JS
Mootools Y Otros Frameworks JSIan Monge Pérez
 
Node Js & 3D Printer
Node Js & 3D PrinterNode Js & 3D Printer
Node Js & 3D Printernanusefue
 
Desarrollando aplicaciones web usando Catalyst y jQuery
Desarrollando aplicaciones web usando Catalyst y jQueryDesarrollando aplicaciones web usando Catalyst y jQuery
Desarrollando aplicaciones web usando Catalyst y jQueryJavier P.
 
Desarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQueryDesarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQueryJavier P.
 
JSDays Desarrolla tu primera API
JSDays Desarrolla tu primera APIJSDays Desarrolla tu primera API
JSDays Desarrolla tu primera APICloudAppi
 
Taller desarrollo de apis
Taller desarrollo de apisTaller desarrollo de apis
Taller desarrollo de apisCloudAppi
 
Node.js - Eventos para Todos
Node.js - Eventos para TodosNode.js - Eventos para Todos
Node.js - Eventos para TodosMariano Iglesias
 
Introducción Android NDK
Introducción Android NDKIntroducción Android NDK
Introducción Android NDKFe
 
Introducción android ndk
Introducción android ndkIntroducción android ndk
Introducción android ndkBarcelona GTUG
 
Tecnologías para microservicios
Tecnologías para microserviciosTecnologías para microservicios
Tecnologías para microserviciosPedro J. Molina
 
Java Script Frame Works
Java Script Frame WorksJava Script Frame Works
Java Script Frame Workshectorguedea
 
Desarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQueryDesarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQueryJavier P.
 
Un poco más allá con grails. PrimerViernes
Un poco más allá con grails. PrimerViernesUn poco más allá con grails. PrimerViernes
Un poco más allá con grails. PrimerViernesDani Latorre
 
Aprendiendo a usar NDK Android Day(castellano)
Aprendiendo a usar NDK Android Day(castellano)Aprendiendo a usar NDK Android Day(castellano)
Aprendiendo a usar NDK Android Day(castellano)videos
 

Similar to Node js Alt.net Hispano (20)

Desarrollo web en Nodejs con Pillars por Chelo Quilón
Desarrollo web en Nodejs con Pillars por Chelo QuilónDesarrollo web en Nodejs con Pillars por Chelo Quilón
Desarrollo web en Nodejs con Pillars por Chelo Quilón
 
Mootools Y Otros Frameworks JS
Mootools Y Otros Frameworks JSMootools Y Otros Frameworks JS
Mootools Y Otros Frameworks JS
 
Webpack desde cero
Webpack desde ceroWebpack desde cero
Webpack desde cero
 
Semana 2 Configuración entorno de desarrollo
Semana 2   Configuración entorno de desarrolloSemana 2   Configuración entorno de desarrollo
Semana 2 Configuración entorno de desarrollo
 
Node Js & 3D Printer
Node Js & 3D PrinterNode Js & 3D Printer
Node Js & 3D Printer
 
Desarrollando aplicaciones web usando Catalyst y jQuery
Desarrollando aplicaciones web usando Catalyst y jQueryDesarrollando aplicaciones web usando Catalyst y jQuery
Desarrollando aplicaciones web usando Catalyst y jQuery
 
Curso introductorio a Raptor.js con Node.js
Curso introductorio a Raptor.js con Node.jsCurso introductorio a Raptor.js con Node.js
Curso introductorio a Raptor.js con Node.js
 
Desarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQueryDesarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQuery
 
JSDays Desarrolla tu primera API
JSDays Desarrolla tu primera APIJSDays Desarrolla tu primera API
JSDays Desarrolla tu primera API
 
Taller desarrollo de apis
Taller desarrollo de apisTaller desarrollo de apis
Taller desarrollo de apis
 
Node.js - Eventos para Todos
Node.js - Eventos para TodosNode.js - Eventos para Todos
Node.js - Eventos para Todos
 
Meetup V.E.No.M. y docker
Meetup V.E.No.M. y dockerMeetup V.E.No.M. y docker
Meetup V.E.No.M. y docker
 
Introducción Android NDK
Introducción Android NDKIntroducción Android NDK
Introducción Android NDK
 
Introducción android ndk
Introducción android ndkIntroducción android ndk
Introducción android ndk
 
Tecnologías para microservicios
Tecnologías para microserviciosTecnologías para microservicios
Tecnologías para microservicios
 
Presentacion node
Presentacion nodePresentacion node
Presentacion node
 
Java Script Frame Works
Java Script Frame WorksJava Script Frame Works
Java Script Frame Works
 
Desarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQueryDesarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQuery
 
Un poco más allá con grails. PrimerViernes
Un poco más allá con grails. PrimerViernesUn poco más allá con grails. PrimerViernes
Un poco más allá con grails. PrimerViernes
 
Aprendiendo a usar NDK Android Day(castellano)
Aprendiendo a usar NDK Android Day(castellano)Aprendiendo a usar NDK Android Day(castellano)
Aprendiendo a usar NDK Android Day(castellano)
 

Recently uploaded

Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfvladimiroflores1
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfAnnimoUno1
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
presentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxpresentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxlosdiosesmanzaneros
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
Presentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilPresentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilJuanGallardo438714
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 

Recently uploaded (15)

Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
presentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxpresentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptx
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Presentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilPresentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmeril
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 

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é 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
  • 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 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
  • 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-not en v0.5.1 salió el primer exe nativo para windows MS esta ayudando Soporte completo en v 0.6.0
  • 7. 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
  • 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'); } ).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';                                                 for (var i = 0; i < resultArray.length; (i += 1)) {                             response += resultArray[i].title + '';                         }                         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 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
  • 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.
  • 14. Podemos crear la idea de private scope con modules. image: http://www.finankorr.net/?page_id=13
  • 15.
  • 16. 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
  • 17. 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
  • 18. 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
  • 19. 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
  • 20. Usar EventEmitter Exponer los eventos. Listo. image: http://www.codeandbeyond.org/2011/04/recursos-gratuitos-para-empezar-con.html
  • 21. 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
  • 22.
  • 23. 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
  • 24. 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
  • 25. 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
  • 26. Hidden level Testing Debugging
  • 27. Vows
  • 28. node-inspector   Instalar chrome > npm install v8-profiler > npm install node-inspector