Hay muchas buenas razones para usar Node.js, independientemente del nivel de experiencia. Eche un vistazo a cuáles son algunas de las mejores razones prácticas para usar Node y por qué debería amarlo.
No utilizas la plataforma moderna y moderna solo porque todos los demás lo son. Es por eso que aún no has mirado en serio a Node.js. (O tu jefe aún no te ha dejado). Bueno, es hora de mirar de nuevo. Hay muchas buenas razones prácticas para usar Node. Aquí hay diez de ellos.
1. Ya sabes JavaScript
Déjame adivinar. Está utilizando un marco de cliente rico (Angular, Ember, Backbone) y una API REST-ful del lado del servidor que transporta JSON de un lado a otro. Incluso si no está utilizando uno de esos marcos, ha escrito el suyo en jQuery. Entonces, si no está utilizando Node.js en el servidor, entonces está traduciendo constantemente. Está traduciendo dos cosas: 1) la lógica en su cabeza de JavaScript a su marco del lado del servidor, y 2) los datos HTTP de JSON a sus objetos del lado del servidor.
Al usar JavaScript en toda su aplicación, no solo obtiene energía mental, sino que también gana practicidad. Al reutilizar potencialmente sus modelos y plantillas, reduce el tamaño de su aplicación, lo que reduce la complejidad y la posibilidad de errores.
JavaScript como idioma se está comiendo el mundo. No va a desaparecer pronto. Hay un tiempo de ejecución de JavaScript en cada computadora personal del mundo, y parece permanecer así por un tiempo.
2. Es rápido
Node.js es un tiempo de ejecución de JavaScript que utiliza el motor V8 desarrollado por Google para su uso en Chrome. V8 compila y ejecuta JavaScript a la velocidad de la luz principalmente debido al hecho de que V8 compila JavaScript en código de máquina nativo.
Además de la rápida ejecución de JavaScript, la verdadera magia detrás de Node.js es el bucle de eventos. El bucle de eventos es un subproceso único que realiza todas las operaciones de E / S de forma asincrónica. Tradicionalmente, las operaciones de E / S se ejecutan sincrónicamente (bloqueo) o asincrónicamente al generar hilos paralelos para realizar el trabajo. Este viejo enfoque consume mucha memoria y es notoriamente difícil de programar. Por el contrario, cuando una aplicación Node necesita realizar una operación de E / S, envía una tarea asincrónica al bucle de eventos, junto con una función de devolución de llamada, y luego continúa ejecutando el resto de su programa. Cuando finaliza la operación asíncrona, el bucle de eventos vuelve a la tarea para ejecutar su devolución de llamada.
En otras palabras, leer y escribir en conexiones de red, leer / escribir en el sistema de archivos y leer / escribir en la base de datos, todas las tareas muy comunes en aplicaciones web, se ejecutan muy, muy rápido en Node. Node le permite crear aplicaciones de red rápidas y escalables capaces de manejar una gran cantidad de conexiones simultáneas con alto rendimiento.
3. Herramientas
npm es el administrador de paquetes de Node.js y … es … excelente. Por supuesto, se parece a los administradores de paquetes de otros ecosistemas, pero npm es rápido, robusto y consistente. Hace un gran trabajo al especificar e instalar dependencias de proyectos. Mantiene los paquetes aislados de otros proyectos, evitando conflictos de versiones. Pero también maneja instalaciones globales de comandos de shell y binarios dependientes de la plataforma. No recuerdo un momento con npm donde tuve que preguntarme, “¿Por qué esos módulos están en conflicto? ¿Dónde está instalado ese módulo? ¿Por qué está eligiendo esta versión y no esa?”
Grunt es el venerable corredor de tareas, pero los nuevos niños en el trago de bloque, brunch y brócoli se centran en compilaciones que transforman sus archivos y aprovechan las capacidades de flujo de archivos de JavaScript.
4. Ya sabes JavaScript, otra vez
Por lo tanto, ha decidido utilizar JavaScript en el servidor y está orgulloso de su decisión de evitar toda la traducción de los datos del cliente a los datos del servidor. ¡Pero persistir en que los datos en la base de datos requieren aún más traducciones!
Hay buenas noticias Si está utilizando una base de datos de objetos como Mongo, también puede extender JavaScript a la capa de persistencia.
Usar Node.js le permite usar el mismo idioma en el cliente, en el servidor y en la base de datos. Puede mantener sus datos en su formato JSON nativo desde el navegador al disco.
5. En tiempo real hecho fácil
Si Node.js sobresale en muchas conexiones concurrentes, entonces tiene sentido que sobresalga en aplicaciones web en tiempo real para múltiples usuarios como chat y juegos. El bucle de eventos de Node se encarga del requisito multiusuario. El poder en tiempo real se obtiene mediante el uso del protocolo websocket. Websockets son simplemente canales de comunicación bidireccionales entre el cliente y el servidor. Por lo tanto, el servidor puede enviar datos al cliente con la misma facilidad que el cliente. Websockets se ejecuta a través de TCP, evitando la sobrecarga de HTTP.
Socket.io es una de las bibliotecas websocket más populares en uso, y hace que las aplicaciones web colaborativas sean muy simples. Aquí hay un servidor simple que usa Socket.IO:
aplicación var = require (‘http’). createServer (controlador)
var io = require (‘socket.io’) (aplicación);
app.listen (8080);
io.on (‘conexión’, función (socket) {
// Enviar un mensaje al cliente
socket.emit (‘evento al cliente’, {hola: ‘mundo’});
// Manejar un mensaje del cliente
socket.on (‘evento del cliente, función (datos) {
console.log (datos);
});
});
6. Transmisión de datos
Tradicionalmente, los marcos web tratan las solicitudes y respuestas HTTP como objetos de datos completos. De hecho, en realidad son transmisiones de E / S, como puede obtener si transmite un archivo desde el sistema de archivos. Dado que Node.js es muy bueno manejando E / S, podemos aprovechar y construir algunas cosas interesantes. Por ejemplo, es posible transcodificar archivos de audio o video mientras se cargan, lo que reduce el tiempo de procesamiento general.
Node puede leer / escribir transmisiones en websockets tan bien como puede leer / escribir transmisiones en HTTP. Por ejemplo, podemos canalizar stdout desde un proceso en ejecución en el servidor a un navegador a través de un websocket, y hacer que la página web muestre el resultado en tiempo real.
7. Una base de código y su tiempo real gratis
Si ha llegado hasta aquí, puede preguntarse: “Si Node.js me permite escribir JavaScript en el cliente y el servidor y facilita el envío de datos entre el cliente y el servidor, ¿puedo escribir una aplicación web que ejecuta una única base de código tanto en el cliente como en el servidor, y sincroniza automáticamente los datos entre los dos?
La respuesta a su pregunta sería sí, y el marco para esa aplicación sería Meteor. Meteor es un marco web de próxima generación construido sobre Node. Ejecuta la misma base de código tanto en el cliente como en el servidor. Esto le permite escribir código de cliente que guarda directamente en una base de datos. Luego, esos datos se almacenan automáticamente en el servidor. ¡También trabaja de la otra manera! Cualquier cambio de datos en el servidor se envía automáticamente al cliente. Se pone mejor. ¡Cualquier página web que muestre esos datos reacciona automáticamente y se actualiza sola!
// ¡Guarde el valor de ‘nombre’ al hacer clic en ‘enviar’ directamente en el navegador!
‘.click .submit’: función (e, tpl) {
Users.update (
{_id: this._id},
{$ set: {name: $ (‘. name’). val ()}}
);
}
8. Conserje corporativo
El riesgo inherente a cualquier proyecto de código abierto es el abandono por parte de sus mantenedores voluntarios. Este no es el caso con Node.js. Actualmente, Node está patrocinado por Joyent, quien ha contratado a un líder de proyecto y otros contribuyentes principales, por lo que hay una compañía real que respalda el futuro del proyecto. Sin mencionar que hay una gran cantidad de compañías importantes que respaldan el proyecto en todos los niveles, incluidos Walmart, Microsoft, Yahoo, Paypal, Voxer y más.
9. Hosting
Con la rápida adopción, el alojamiento Node.js de clase mundial también está proliferando. En particular, los proveedores de Plataforma como Servicio (PaaS) como Modulus y otros reducen las implementaciones a un solo comando. Incluso el abuelo de PaaS, Heroku, ahora apoya formalmente las implementaciones de Node.
10. Todo desarrollador sabe (un poco) JavaScript
Este es para tu jefe.
Desde los albores de la web, ha habido JavaScript onclick’s y onmouseover’s. Cada desarrollador web ha codificado un pequeño JavaScript, incluso si ese JavaScript estaba hackeando un complemento jQuery. Encontrar talento para el desarrollo web es terriblemente difícil en estos días. Entonces, al elegir una plataforma web, ¿por qué no elegir la plataforma cuyo idioma es conocido por todos los desarrolladores web del mundo?
Fuente: 10 razones principales para usar Node.js