SlideShare una empresa de Scribd logo
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

Más contenido relacionado

La actualidad más candente

Iniciacion a PHP (I)
Iniciacion a PHP (I)Iniciacion a PHP (I)
Iniciacion a PHP (I)
Francisco Calderón
 
Taller introduccion symfony2
Taller introduccion symfony2Taller introduccion symfony2
Taller introduccion symfony2
Mario 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 - UGR
Juan Belón Pérez
 
Introducción a Node.js
Introducción a Node.jsIntroducción a Node.js
Introducción a Node.js
Alessandro Mascherpa
 
Desde el DVR hasta la cocina
Desde el DVR hasta la cocinaDesde el DVR hasta la cocina
Desde el DVR hasta la cocina
Efren 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 definitivo
Biko
 
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
JC Marley
 
Introduccion a Nodejs
Introduccion a NodejsIntroduccion a Nodejs
Introduccion a Nodejs
Jan 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
 
Introducción a groovy & grails
Introducción a groovy & grailsIntroducción a groovy & grails
Introducción a groovy & grails
Fátima Casaú Pérez
 
Taller de Capistrano
Taller de CapistranoTaller de Capistrano
Taller de Capistrano
Rafael García
 
Django
DjangoDjango
Dar lab1819
Dar lab1819Dar lab1819
Php Con Postgres
Php Con PostgresPhp Con Postgres
Php Con Postgres
Jorge Arevalo
 
Introduccion A Groovy
Introduccion A GroovyIntroduccion A Groovy
Introduccion A Groovy
Andres Almiray
 
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 paradigmas
Zuriel Diaz
 
Segunda clase, del curso de Microcomputadoras
Segunda clase, del curso de MicrocomputadorasSegunda clase, del curso de Microcomputadoras
Segunda clase, del curso de Microcomputadoras
Andres Giovanni Lara Collazos
 

La actualidad más candente (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 a 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ón
betabeers
 
Mootools Y Otros Frameworks JS
Mootools Y Otros Frameworks JSMootools Y Otros Frameworks JS
Mootools Y Otros Frameworks JSIan Monge Pérez
 
Webpack desde cero
Webpack desde ceroWebpack desde cero
Webpack desde cero
Fco Javier Núñez Berrocoso
 
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
Richard Eliseo Mendoza Gafaro
 
Node Js & 3D Printer
Node Js & 3D PrinterNode Js & 3D Printer
Node Js & 3D Printer
nanusefue
 
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.
 
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
William Amed Tamayo Guevara
 
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
Javier P.
 
JSDays Desarrolla tu primera API
JSDays Desarrolla tu primera APIJSDays Desarrolla tu primera API
JSDays Desarrolla tu primera API
CloudAppi
 
Taller desarrollo de apis
Taller desarrollo de apisTaller desarrollo de apis
Taller desarrollo de apis
CloudAppi
 
Node.js - Eventos para Todos
Node.js - Eventos para TodosNode.js - Eventos para Todos
Node.js - Eventos para TodosMariano Iglesias
 
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
Manuel Juan Fosela Aguila
 
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 ndk
Barcelona GTUG
 
Tecnologías para microservicios
Tecnologías para microserviciosTecnologías para microservicios
Tecnologías para microservicios
Pedro J. Molina
 
Presentacion node
Presentacion nodePresentacion node
Presentacion node
Luis Vilches
 
Java Script Frame Works
Java Script Frame WorksJava Script Frame Works
Java Script Frame Works
hectorguedea
 
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
Javier 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 a 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)
 

Último

Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
IsabellaRubio6
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
DiegoCampos433849
 
Desarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdfDesarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdf
samuelvideos
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
Emilio Casbas
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
Fernando Villares
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Telefónica
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
cristianrb0324
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
cj3806354
 
Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
ItsSofi
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
SamuelRamirez83524
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
raquelariza02
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
zoecaicedosalazar
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
cofferub
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
coloradxmaria
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
rafaelsalazar0615
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
marianabz2403
 
Conceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdfConceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdf
ValeriaAyala48
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
CrystalRomero18
 
maestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdfmaestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdf
JimmyTejadaSalizar
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
AlejandraCasallas7
 

Último (20)

Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
 
Desarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdfDesarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdf
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Conceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdfConceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdf
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
 
maestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdfmaestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdf
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
 

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