Fast (but not) Furious

Tu app con Node.js

Carlos Fernández Llamas -Seis Cocos

¿Quién soy?

Carlos Fernández Llamas

Apps Technical Head en Seis Cocos

Estudiante de FP G.S. de Desarrollo Multiplataforma

Amante y defensor de lo que se puede ejecutar en cualquier sitio

Contacto

cfernandez@seiscocos.com

@Sirikon

Objetivo:

Saber de lo que es capaz Node.js

Démosle una oportunidad a JavaScript en el servidor

Ventajas

  • Capaz de soportar una cantidad enorme de conexiones simultáneas con una velocidad de respuesta envidiable gracias al non-blocking I/O
  • Altamente productivo
  • Gestor de módulos NPM (y la genial comunidad que lo rodea)
  • Es JavaScript

Cofianza

Grandes profesionales y empresas ya confían en él para dar algunos de sus servicios

Yahoo!

"Node.js es el núcleo de ejecución de Manhattan (plataforma propia). Permitiendo a los desarrolladores construir una base de código usando sólo un lenguaje, ese es el nirvana de los desarrolladores."

LinkedIn

"En el lado del servidor, toda la plataforma que sirve datos a las apps móviles está completamente escrita en Node.js.
Una razón era escalabilidad, La segunda es que Node demostró una mejora enorme en rendimiento."

Microsoft

"Node proporciona a los usuarios de Azure la mejor experiencia JavaScript end-to-end para el desarrollo de toda una nueva clase de aplicaciones en tiempo real."

Modelado de datos sobre MongoDB

Con Mongoose

Mongoose es un ORM que facilita mucho el modelado de datos, no tenemos que preocuparnos de crear las funciones que manipulan los documentos en la base de datos, él las crea por nosotros


var UserSchema = new Schema({
	username: {type: String, index: true, required: true},
	password: {type: Buffer, required: true},
	fullname: {type: String},
	lastlogin: {type: Date},
});

var User = Mongoose.model('Post', PostSchema);
				    

¡Demo!

Routing

Con Express

Express es un framework que, entre sus principales virtudes, está la facilidad y potencia que tiene para establecer las rutas de nuestra aplicación


app.get('/saluda/:nombre', function(req,res){
 	res.send('Hola ' + req.params.nombre + '!');
});
				    

¡Demo!

Aplicando plantillas a los datos

Con Handlebars

Handlebars es un sistema de plantillas ligero y rápido que permite iteraciones, if/else, ampliar sus funcionalidades con helpers y mucho más


{{fullname}}

  • Nombre de usuario: {{username}}
  • Visto por última vez {{prettyDate lastlogin}}

var source   = $("#donde_tenga_la_plantilla").html();
var template = Handlebars.compile(source);
var context = {fullname: "John Doe", username: "jdoe", lastlogin: "2014-04-05"}
var html = template(context);
					    

John Doe

  • Nombre de usuario: jdoe
  • Visto por última vez el 5 de Abril del 2014

¡Demo!

Producción

Herramientas como forever y foreman te ayudarán a que poner tu nueva app en producción sea rápido y estable

¿Preguntas?

¡Muchas Gracias!

Twitter: @Sirikon

Correo: cfernandez@seiscocos.com