NodeJS: desarrollo, configuración del servidor

15 de diciembre de 2020

Lang: cs en de es

JavaScript también está ganando terreno en el desarrollo del backend de las aplicaciones web que se ejecutan en el servidor que utiliza la tecnología NodeJS. ¿Cómo empezar a desarrollar aplicaciones NodeJS? ¿Cómo preparar un servidor para ejecutar aplicaciones NodeJS? Descúbrelo en este tutorial.

JavaScript es un lenguaje de scripting que se utilizaba principalmente en el frontend - se ejecuta en el navegador web del usuario. Con el tiempo, los avances tecnológicos dieron lugar involuntariamente a la capacidad de ejecutar JavaScript en el backend - el NodeJS.

Instalación de NodeJS

Además de NodeJS, también necesitarás instalar NPM, que es una herramienta de gestión de paquetes/bibliotecas desarrollada en JavaScript. Si estás utilizando la distribución Mageia, puedes instalarla con el siguiente comando.

urpmi nodejs npm
En distribuciones tipo debian, para instalar NodeJS y NPM, utiliza el siguiente comando:
apt-get install nodejs npm
Puede que te preguntes qué versión de NodeJS has instalado, puedes averiguarlo con el comando:
node -v

Código del programa:

const http = require('http');

const hostname = '0.0.0.0';
const puerto = 3000;
console.log(proceso.entorno);

const servidor = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('¡Hola Mundo!\n');
});

server.listen(port, hostname, () => {
console.log(`Servidor ejecutándose en http://${nombre de host}:${puerto}/`);
});
Lanzamiento de la aplicación:
node hola.js
Una vez lanzado nodeJS, la aplicación está disponible en el navegador web en: http://0.0.0.0:3000/ El código fuente de la aplicación NodeJS de ejemplo está en GitHub.

NodeJS Docker

La forma más sencilla de conseguir que NodeJS funcione en Docker es utilizar la imagen oficial de Imagen Docker NodeJS de docker hub - estas imágenes NodeJS se pueden utilizar sin modificaciones. Aquí hay una guía detallada para ejecutar NodeJS en un contenedor Docker.

Para probarlo, se puede ejecutar directamente a través de mi preparado Ejemplo Docker de NodeJS.

Arranca el contenedor docker y visualiza la aplicación:

docker-compose up
Construir manualmente el contenedor e iniciar manualmente la aplicación:
docker build -t nodex .
docker run -rm -p 49160:3000 nodex
La aplicación estará entonces disponible en la url: http://localhost:49160/

Video tutorial de NodeJS

Cómo poner en marcha NodeJS? Puedes instalar NodeJS de forma nativa en tu sistema o utilizar Docker. Aquí tienes un videotutorial sobre cómo configurar tu entorno de desarrollo de aplicaciones con NodeJS. Y cómo crear tu primer programa (hola mundo) en NodeJS.

NodeJS en el servidor

Después de desarrollar una aplicación NodeJS, probablemente querrás ejecutarla en el servidor como un daemon=programa aún en ejecución, que se inicia automáticamente cuando se inicia el servidor.

Puede utilizar varias herramientas en un SO moderno basado en Linux para hacer esto systemd. Otra opción es por ejemplo PM2, que es un gestor de procesos/aplicaciones programado en NodeJS.

PM2

PM2 funciona asegurándose de que el script NodeJS se ejecuta en segundo plano cuando se inicia el sistema operativo y lo mantiene vivo. Monitoriza la ejecución y la reinicia si se bloquea por alguna razón. Inicia automáticamente los scripts al arrancar el sistema y puede ejecutar scripts predefinidos una vez.

Para instalarlo, utiliza el comando:

npm install pm2@latest -g
A continuación se muestra un ejemplo detallado de cómo desplegar PM2

Systemd

A continuación se muestra un ejemplo detallado de cómo ejecutar una aplicación NodeJS usando systemd.

Crea un archivo /lib/systemd/system/nodej-service.service con la siguiente configuración para ejecutar una aplicación NodeJS:

[Unit]
Descripción=NodeJS
After=red.target

[Servicio]
Tipo=simple
#ExecStart=/usr/bin/node /srv/node/hello.js
ExecStart=/usr/bin/npm run start --prefix /root/CloudProxy
Restart=siempre
#Restart=en-fallo

[Install]
WantedBy=multi-user.target
Los siguientes comandos recargarán la configuración y ejecutarán la aplicación NodeJS en segundo plano(como demonio):
systemctl daemon-reload
service nodejs-service start

Por supuesto, es bueno hacer esta configuración usando alguna herramienta como ansible, porque así eres capaz de automatizar estas tareas y hacerlas más eficientes, que normalmente cualquier buen administrador de Linux utiliza una herramienta como esa. Después de todo, si quieres usar una aplicación NodeJS para tu negocio, deberías delegar la instalación de un servidor Linux para ejecutar NodeJS aplicación en un profesional de los servidores.

TypeScript

JavaScript no es un lenguaje de scripting muy bueno, a pesar de la modernización, por lo que hoy en día se suele cambiar a TypeScript Más información sobre TypeScript en el sitio oficial en inglés.

Artículos sobre un tema similar

Lenguaje de programación Go
Análisis de la asignación y fijación de precios del desarrollo de proyectos de software
Programa Python para controlar Docker mediante la API
Cómo utilizar MailCatcher para probar correos electrónicos
API OpenAI de Python
Creación de una aplicación web WebSocket y configuración de un proxy
Gestión de proyectos: desarrollo ágil de software
Cómo ejecutar aplicaciones PHP antiguas
Lo que debe saber un buen programador
Lenguaje de programación Rust
Fallo de seguridad de Nette CVE-2020-15227
API REST: API de plataforma
Alojamiento web y de correo personalizado con el software ISP Config
Programación en SQL: PostgreSQL, MySQL/MariaDB
HTTPS: web segura
Base de datos NoSQL Mongo DB
Connecting to Microsoft SQL Server from Linux
¿Cuál es la descripción del trabajo de un programador?
Localización de aplicaciones Python
Qué correo y alojamiento web elegir
Digispark - Programar microcontrolador Atmel ATtiny con Arduino IDE
Desarrollo para procesadores ARM con Arduino IDE
Cómo programar el procesador WiFi ESP8266
Smartphone abierto con Linux - Openmoko Neo FreeRunner

Boletin informativo

Si está interesado en recibir noticias puntuales por correo electrónico.
Puedes registrarte rellenando tu email suscripción de noticias.


+