Noticia Introducción a NodeJS + SailsJS

Hola a toda la comunidad! Mi nombre es Bruno, y llevo un tiempo en DesdeLinux como usuario. Es hora de que haga mi primera publicaciones en esta comunidad :)

Hoy les traigo una guía sobre NodeJS y Sails.js

Node.js


Es un entorno de programación, basado en el lenguaje Javascript con una arquitectura orientada a eventos, ideal para la programación asincrónica. Node, está basado en el motor V8 de google.
Mantiene una comunidad activa open source, que han escrito muchos módulos para facilitar nuestro desarrollo.
Una de ellas es Socket.io (Permite al servidor enviar actualizaciones en tiempo real al cliente, por ejemplo el seguimiento de un GPS)

¿Para qué sirve?


Node está diseñado para las situaciones en el que el tráfico es demasiado grande, haciendo que la lógica del servidor y el procesamiento no sean necesariamente mayores. Y no sólo eso, sino que en tiempo real y con una gran escalabilidad!

¿Por qué Node?


1) Es open source.
2) Si alguna vez pensaste en usar un único lenguaje tanto del lado del servidor como del cliente, aquí la solución.
3) Escalabilidad y Concurrencia.
4) Etc.

Sails.js

Elegí sails, por las siguientes características además de que a mi punto de vista fue el más legible en cuanto a código. Ojo! existen MUCHOS frameworks para Node, como lo es Express, Angular, Geddy, etc.



¿Qué es Sails?


Es un framework MVC que imita el modelo de ruby on rails (Si, escucharon bien :D) para la creación de pequeñas o grandes aplicaciones de forma rápida, sencilla y segura. Además cuenta con soporte para los requisitos de aplicaciones modernas. No importa que base de datos utilices, Sails provee una capa de abstracción, que hace que la elección de la misma, le sea indiferente. Sails cuenta con:

- La capacidad de crear RESTfull JSON API de forma automática.
- Trae incorporado el modulo Socket.io.
- Genera rutas automáticas para sus controladores.
- Provee sistema de autenticación de usuarios y control de acceso basado en roles.
- Grunt como Task Runner (Tareas automáticas como minificación, compilación, testing, etc)
- Assets: Todos los archivos de sus correspondientes directorios (css,js) son unificados en un único archivo y minificados, para reducir considerablemente la carga de la página y la cantidad limitada de peticiones del navegador.



Instalación de Node.Js

El turorial lo realicé con Xubuntu 13.04.

sudo apt-get install python-software-properties python g++ make
sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install nodejs

Instalación de Sails.Js


Última versión estable:
sudo npm -g install sails

Llegados a este punto sin errores, creamos un nuevo proyecto! :D

Crea el esqueleto de directorios:
sails new testProject

Ingresamos a nuestro Proyecto:
cd testProject

Iniciamos el servidor:
sails lift

Yeeeeeeeeeeah! ingresamos en http://localhost:1337/



La estructura de nuestro directorio debería quedar así:



API:
- Controladores
- Adaptadores
- Modelos
- Políticas
- Servicios

ASSETS:
- images
- js
- styles
favicon
robots

CONFIG:
- locales
404.js, 500.js …..
routes.js
session.js
sockets.js ……..

NODE_MODULES:
- ejs (motor de plantillas)
- grunt
- optimist
- sails-disk

VIEWS:
- Home (aquí se encuentre la plantilla de la raiz, localhost)
- 404.ejs
- 500.ejs
- layout.ejs (Para los que usaron rails, layouts.ejs se comporta igual que layouts.html.*)

EJS (Embedded Javascript) Es un motor de plantillas, pero no el único. Particularmente me gusta mas JADE

FIN

Hasta aquí mis conocimientos, y espero haber sido de ayuda para muchos… Soy nuevo en esta tecnología por lo que cualquier crítica constructiva es bienvenida :)

Este post surgió realizarlo, porque me encuentro desarrollando una especie de red psicosocial (Nada de otro mundo). Con fines de aprender, y pocos recursos. la idea es realizar también un servidor casero que la soporte (Seguramente haga un tutorial de ello) Como dije antes, los recursos son pocos, por lo que la optimización es muy importante. (y aunque no lo fueran también ^^)


Bp68CD8ZTEU


Continúar leyendo...