miércoles, 28 de enero de 2015

Tutorial Node.js: Avanzado II


​ Gracias a los últimos comentarios voy a continuar un poco más con Node.js, ya que con la gran cantidad y variedad de herramientas que se tienen en Node.js se puede entender muy bien el funcionamiento de un sistema web.


Como lo muestro en la imagen podemos dividir en varias capas todas las herramientas que necesitamos para un sistema web.
  • Servidor: Es el proyecto en ejecución y se encarga de escuchar por un puerto las solicitudes del usuario. Node.js es la herramienta que nos permite levantar el servidor en este caso.
  • Manejador de base de datos: Es la herramienta que permite tener la conección del sistema con la base de datos y manipular los datos.
  • Framework: Es la herramienta que nos permitirá manejar adecuadamente las consultas del usuario, tener una estructura de proyecto escalable y con código robusto. Este existen 2 tipos de framework:
    • Backend: De forma sencilla es el framework que tendremos del lado del servidor.
    • Frontend: Es el framework que se tiene en la aplicación del lado del cliente, es decir que los cáculos se llevarán a cabo desde el navegador. Esto nos permite tener páginas web dinámicas y con actualizaciones en tiempo real de la interfaz sin tener llamadas al servidor tan pesadas.
Le​​s hablo de todo esto con el propósi​​to de dar entender de la mejor ma​​nera que ​​​​​​​​​​​​en​​​​c​​ontre a MEAN, una herramienta ​​de javascript que une y permite d​​e una manera ​​​​​​​​​​​​m​​u​​y transparente el levantar el servidor​​, manejar base de datos, tener l​​os frameworks ​​​​​​​​​​​​d​​e​​ Front y Back end, y de ahí es donde​​ viene su nombre :​
  • MongoDB: Manejador de base de datos.
  • Express.js: Framework de Backend.
  • Angular.js: Framework de Frontend.
  • Node.js: Servidor.
​​Ex​​isten MEAN.js y MEAN.io, las diferencias​​ radican en que M​​EAN.js esta pensado como aplicación MVC (Modelo Vista Controlador) y MEAN.io trabaja por modulos. Además de esto tenemos que usan herramientas diferentes para manejar el proyecto mean para MEAN.io y yeoman para MEAN.js. ​​

MEAN.js

Los comandos de instalación tomando en cuenta que ya se tiene instalado npm y nodejs son:

Para crear un proyecto necesitamos ejecutar el comando yo meanjs y este automáticamente creará todo el proyecto con la siguiente estructura:


Agregamos la variable de entorno de ambiente de desarrollo ejecutando el comando: export NODE_ENV=development​​.

Luego ejecutamos npm install para descargar todas las librerías que necesita el proyecto y luego grunt para levantar el servidor. Finalmente accedemos al sistema en la dirección por defecto localhost:3000 y en el navegador se tendrá una página como la siguiente: ​


MEAN.io

Los comandos de instalación tomando en cuenta que ya se tiene instalado npm y nodejs son:

Para crear un proyecto necesitamos ejecutar el comando mean init nombre_del_app y este automáticamente creará todo el proyecto con la siguiente estructura:


Donde cada carpeta dentro de packages representa un módulo y se estructura de la siguiente forma:


Luego ejecutamos npm install para descargar todas las librerías que necesita el proyecto y luego grunt para levantar el servidor. Finalmente accedemos al sistema en la dirección por defecto localhost:3000 y en el navegador se tendrá una página como la siguiente:


E​​x​​​​​​​​​​​​​​isten muchas otras her​​ramientas interesantes de Node.j​​s entre las que destacan: ​​
  • Restify: herramienta que construye correctamente los servicios web REST.
  • Jade: Una herramienta para trabajar con plantillas de html con node.js.
  • Socket.io: Permite gestionar de manera sencilla la comunicación en tiempo real entre navegador y servidor con soporte multinavegador.
  • Mastering Node.js: Permite trabajar la alta concurrencia de los servidores web.
  • Log.io: Monitor en tiempo real de log en el navegador.
​​ Tenemos má​​s alterna​​tivas a MEAN si lo que queremos es usar javascript, ​​​​​​​​e​​n​​tre los más populares y q​​ue están​​ usando las empresas es Loopback.

Si algo no queda muy claro siempre me pueden escribir a mi correo tonylattke@gmail.com o también pueden dejar comentarios al final de este post y trataré de ayudarles lo antes posible.

No hay comentarios:

Publicar un comentario