Node JS surge como una iniciativa de tener Javascript en el backend. Con este servidor podremos implementar programas Javascript que den servicio desde el back a nuestros frontales. Es código abierto y multiplataforma.
Destaca su gran eficiencia ya que corre sobre el motor Javascript de Chrome. Se lanza un único proceso y utiliza directivas de I/O (acceso a BBDD, leer de la red, sistema de ficheros, etc) asíncronas para evitar bloqueos. De esta forma puede manejar sesiones concurrentes sin necesidad de lanzar múltiples hilos.
Pueden usarse los estándares de ECMAScript y decidir que versión usar.
Descarga
mklji
NodeJS disponible para todas las plataformas. Puedes elegir entre un instalador pre-compilado o el código fuente completo.
Tipo de Fichero | Ejecutable o Comprimido |
Plataforma | Windows, macOS, Linux |
Descarga | Descargar |
NPM
La estructura de npm te da acceso a miles de librerias para su descarga. De esta forma puedes extender el funcionamiento de NodeJS para hacerte la vida más fácil a la hora de crear aplicaciones web por ejemplo. Más adelante comentaremos algunos de los Frameworks más importantes descargables mediante NPM.
Hola Mundo
Típico programa de “Hola Mundo” que nos muestra un ejemplo básico de aplicación escrita sobre NodeJS:
const http = require('http')
const host = '127.0.0.1'
const puerto = 8000
const server = http.createServer((req, res) => {
res.statusCode = 200
res.setHeader('Content-Type', 'text/plain')
res.end('Hola Mundo\n')
})
server.listen(puerto, host, () => {
console.log(`Servidor levantado en http://${host}:${port}/`)
})
Mejores frameworks y herramientas para Node JS
- AdonisJS: Framework para desarrollar aplicaciones web enfocado en la estabilidad y la confianza del desarrollador, basado el TypeScript.
- Egg.js: Basado en Node.js & Koa.
- Express: Proporciona una de las formas más simples de implementar un servidor web.
- Fastify: Para desarrollar de forma rápida y estable aplicaciones web.
- FeatherJS: Desarrolla de manera ágil APIs REST usando directamente TypeScript o Javascript. Puedes tener levantados en cuestión de minutos los prototipos.
Bucle de Eventos en Node JS
El bucle de eventos es el que permite a Node JS ejecutar operaciones I/O no bloqueantes.
Cuando arranca NodeJS se inicializa el bucle de eventos, cada fase del bucle consta de una cola FIFO de llamadas para ejecutarse. Las fases son las siguientes:
- timers: Esta fase ejecuta las llamadas planificadas por
setTimeout()
ysetInterval()
. - pending callbacks: Ejecuta las llamadas I/O diferidas a la siguiente iteración.
- idle, prepare: uso interno.
- poll: retrieve new I/O events; execute I/O related callbacks (almost all with the exception of close callbacks, the ones scheduled by timers, and
setImmediate()
); node will block here when appropriate. - check:
Se invocan las llamadas en setImmediate()
. - close callbacks: Cierre de algunas llamadas, por ejemplo:
socket.on('close', ...)
.
Más recursos backend JS
Node JS | JS en backend, código abierto y multiplataforma |
Nest JS | Montado sobre Node, soporta typescript, escribe aplicaciones rápidamente de forma escalable |
Express JS | Se despliega sobre Node, gestión de direccionamiento y soporte completo para montar un servidor |
Node JS con MongoDB | Te mostramos un ejemplo para conectar NodeJS con la base de datos NoSQL MongoDB |
Recursos básicos JS
Prototype | Añadir propiedades de forma dinámica a un objeto |
toLocaleString | Herramienta esencial para el formateo de fechas y números en aplicaciones internacionales |
Recursividad y pila | Uso de recursividad y funcionamiento de la pila JS |
Desestructuración | Mecanismo para desempaquetar arrays y objetos |
Manejo de Strings | Manejo básico de Strings, cadenas de caracteres |
Operadores | Uso de operadores de comparación y lógicos |
Promesas | Gestión de peticiones asíncronas con promesas |
Sleep | Implementación de la función sleep() en JS |
This | Uso de la palabra reservada this en diferentes contextos |
Maps | Te enseñamos cuando usar Map y cuando Object con ejemplos |
Switchery JS | Librería para modificar el estilo de los checkbox |
Mejores libros Javascript Español | Encuentra los mejores libros para aprender JS y convertirte en el desarrollador más demandado. |
Exception JS | Manejo de excepciones en Javascript, control de errores y flujo de programa. |
Obfuscator Javascript | Protege tu código Javascript Ofuscándolo |
Javascript desde cero | Aprende los conceptos básicos de Javascript, ponte en marcha. |
Lodash | Lodash hace que la manipulación de datos en JavaScript sea más fácil y menos propensa a errores |
Formatdate JS | Formateo y trabajo con fechas en javascript de forma sencilla. |
Dayjs | Biblioteca para la gestión de fechas |
padStart | Maneja cadenas de texto con la función padStart() |