¿Qué es Node.JS y por qué debería importarme? [Desarrollo web]

¿Qué es Node.JS y por qué debería importarme? [Desarrollo web] / Wordpress y desarrollo web

JavaScript es solo un lenguaje de programación del lado del cliente que se ejecuta en el navegador, ¿verdad? Ya no. Node.js es una forma de ejecutar JavaScript en el servidor; Pero también es mucho más. Si está interesado en el desarrollo web, debería averiguar un poco sobre Node y por qué está causando conmoción en la comunidad..

Qué es Node.js?

Nodo es una interfaz para el tiempo de ejecución de JavaScript V8: el intérprete de JavaScript súper rápido que se ejecuta en el navegador Chrome. Como sucede, también puede descargar V8 e incrustarlo en cualquier cosa; Nodo hace eso, para servidores web. JavaScript es, después de todo, solo un idioma; no hay nada que diga que no se pueda utilizar en un servidor como en el navegador del usuario. En una pila de servidores LAMP típica Cómo configurar un servidor web Apache en 3 sencillos pasos Cómo configurar un servidor web Apache en 3 sencillos pasos Sea cual sea el motivo, es posible que en algún momento desee activar un servidor web. Ya sea que desee darse acceso remoto a ciertas páginas o servicios, desea obtener una comunidad ... Leer más, tiene un servidor web subyacente Apache o NGINX, con PHP que se ejecuta en la parte superior. Cada nueva conexión al servidor genera un nuevo hilo, y es muy fácil perder el rendimiento rápidamente o para que un sitio lo haga. “bajar” - La única forma de admitir a más usuarios es agregar más servidores. Simplemente no escala bien. Con Node, este no es el caso. No hay Apache para escuchar las conexiones entrantes y devolver los códigos de estado HTTP. Necesitará manejar esa arquitectura de servidor central usted mismo. Afortunadamente, hay módulos para hacer esto más fácil, pero todavía puede ser un poco abrumador cuando empiezas. El resultado, sin embargo, es una aplicación web de alto rendimiento..

Klout: una aplicación web de estadísticas sociales desarrollada en Node.js para un alto rendimiento

JavaScript es un lenguaje basado en eventos jQuery Tutorial (Parte 4) - Oyentes de eventos jQuery Tutorial (Parte 4) - Oyentes de eventos Hoy vamos a mejorar y realmente mostrar dónde brilla jQuery - eventos. Si siguió los tutoriales anteriores, ahora debería comprender bastante bien el código básico ... Leer más, por lo que cualquier cosa que suceda en el servidor desencadena un evento de no bloqueo. Cada nueva conexión dispara un evento; los datos que se reciben de un formulario de carga disparan un evento de datos recibidos; solicitar datos de la base de datos dispara un evento. En la práctica, esto significa que un sitio de Node nunca se bloqueará y puede admitir a decenas de miles de usuarios concurrentes. Node.js desempeña la función del servidor, Apache, e interpreta el código de la aplicación que se ejecuta sobre él. Al igual que Apache, hay varios módulos (bibliotecas) que se pueden instalar para agregar características y funcionalidades, como almacenes de datos, soporte de archivos Zip, inicio de sesión de Facebook o pasarelas de pago. Por supuesto, no hay tantos como para PHP, pero Node todavía está en sus primeras etapas y hay una comunidad sólida detrás de ello. Un concepto central de Node son las funciones asíncronas, por lo que todo se ejecuta en segundo plano, básicamente. Con la mayoría de los lenguajes de programación del lado del servidor, el programa tiene que esperar mientras se completa cada función antes de pasar a la siguiente. Con Node, usted especifica funciones que deben ejecutarse al completar otra cosa, mientras que el resto de su aplicación continúa. Es un tema complejo en el que no profundizaré mucho hoy, pero es una de esas características que definen a Node, por lo que es importante comprenderlo. Sin embargo, hay suficiente chat: aquí hay un ejemplo de servidor HTTP de Hello World para dar una idea rápida de algunos de estos conceptos..

 var http = require ("http"); http.createServer (función (solicitud, respuesta) response.writeHead (200, 'Content-Type': 'text / plain'); response.write ('Hello World!'); response.end (); ) .listen (8080); console.log ("Server running!"); 

Vamos a tratar de romper eso. Primero, estamos incluyendo el módulo http en el proyecto. Luego estamos creando un servidor y pasando una función anónima como parámetro, esta función se activará para cada nueva conexión que se realice. Se necesitan dos argumentos - solicitud, que contiene los parámetros de solicitud del usuario; y respuesta, que usaremos para devolver las cosas. A continuación, estamos usando el objeto de respuesta para escribir un encabezado al usuario con el código HTTP de respuesta 200 (“De acuerdo”) y tipo de contenido, escribiendo un “Hola Mundo!” mensaje, y finalizando la respuesta. Finalmente, le pedimos al servidor que escuche en el puerto 8080 las solicitudes entrantes y envíe un mensaje rápido a la consola (la línea de comandos) para avisarnos que se está ejecutando. Si realmente quieres probar esto por ti mismo, guarda el código anterior como test.js, descargue el instalador de Node, y desde la línea de comandos ejecute -

prueba de nodo.js

Abra un navegador y navegue a localhost: 8080 para ver su aplicación de prueba. Ahora debería tener una pequeña idea de cómo funciona todo esto asíncrono, junto con los modelos controlados por eventos. Si eres nuevo en JavaScript, el concepto de pasar las funciones como argumentos a otras funciones es probablemente un poco extraño.

¿Por qué usar Nodo??

En primer lugar, por el rendimiento y la escalabilidad. El nodo es rápido. Ese es un requisito muy importante cuando usted es una empresa nueva que está tratando de convertirse en la próxima gran empresa y quiere asegurarse de que pueda escalar rápidamente, enfrentándose a la afluencia de usuarios a medida que crece su sitio. Nodo también es perfecto para ofrecer una API REST - un servicio web que toma unos pocos parámetros de entrada y devuelve un poco de datos: simple manipulación de datos sin una gran cantidad de cómputo. El nodo puede manejar miles de estos al mismo tiempo en que PHP simplemente colapsaría. Aparte de los beneficios de rendimiento y la escalabilidad, es muy probable que ya conozca algunos JavaScript, así que, ¿por qué molestarse en aprender un nuevo lenguaje como PHP? Y luego, está la emoción de aprender algo nuevo y relativamente inexplorado. ¿Sabes cuándo llega algo nuevo y luego se vuelve tan omnipresente que te arrepientes de no haberlo aprendido antes, para siempre ponerse al día? No hagas eso esta vez. Nodo va a ser grande.

Desventajas

Como la mayoría de las nuevas tecnologías, no es tan fácil implementar Node en los hosts existentes. Si tiene un alojamiento web compartido, no puede simplemente cargar una aplicación Node y esperar que funcione. Los servidores VPS y dedicados están mejor posicionados: puede instalar Node en ellos. Aún más fácil es utilizar un servicio escalable como Heroku, que es completamente gratuito para desarrollar su sitio: solo tiene que pagar cuando necesite más recursos. Di un ejemplo del uso de Heroku antes cuando lo usamos para crear un fangate de Facebook, pero también se puede usar para Node. Por otro lado, es muy fácil instalar Node de forma local en su PC con Windows, Mac o Linux y comenzar a desarrollar de inmediato, simplemente diríjase a Download Node. También es importante tener en cuenta que Node no es simplemente un reemplazo de Apache: las aplicaciones web existentes no son compatibles y trabajará de manera efectiva desde cero. (aunque hay una gran cantidad de marcos para ayudarle con características comunes). La otra desventaja importante de nodo es que aún se encuentra en las primeras etapas de desarrollo, lo que significa que es probable que algunas características cambien a medida que el desarrollo avance. De hecho, si observa la documentación, incluye un índice de estabilidad, que muestra el uso riesgoso de cada función en la actualidad.. Ya sabes, nunca ha sido un momento más emocionante para ser un desarrollador web. Con servicios web abiertos e intercambio de datos, es más fácil que nunca hacer algo. increíble. ¿Piensas en aprender Nodo? Bueno. ¡Adelante y haz el próximo Twitter! Probablemente también querrá una buena base de la biblioteca jQuery de Javascript Tutorial de jQuery - Introducción: Conceptos básicos y selectores Tutorial de jQuery - Introducción: Conceptos básicos y selectores La semana pasada, hablé sobre la importancia de jQuery para cualquier desarrollador web moderno y por qué increíble. Esta semana, creo que es hora de que nos ensuciemos las manos con algo de código y aprendamos cómo ... Leer más para el extremo delantero.

Explorar más sobre: ​​JavaScript, programación, diseño web, desarrollo web.