Entornos: Node.JS#

Logo Angular

Documentación básica de NodeJS

Configuraciones#

Instalar NodeJS#

Para instalar NodeJS es recomendable acudir a su página oficial: https://nodejs.org/es/

NodeJS CLI#

  • Inicializar un proyecto: npm init

  • Instalar un paquete: npm install paquete

  • Instalar dependencias: npm install

  • Instalar paquete y grabar dependencias: npm install express --save

  • Instalar un paquete y grabar dependencia de desarrollo: npm install paquete --save-dev

Crear comandos#

Se pueden añadir nuevos comandos al package.json como sería el caso de la línea 8:

 1{
 2    "name": "server",
 3    "version": "1.0.0",
 4    "description": "",
 5    "main": "index.js",
 6    "scripts": {
 7        "test": "echo \"Error: no test specified\" && exit 1",
 8        "start": "nodemon index"
 9    },
10    "author": "",
11    "license": "ISC",
12    "devDependencies": {
13        "nodemon": "^2.0.15"
14    }
15}

Para ejecutar el nuevo comando llamado start escribimos npm start.

Archivo principal#

  • Se crea una caperta para el proyecto y se accede a ella desde linea de comandos.

  • Ejecutar npm init para inicializar el proyecto.

  • Siguiendo los pasos se crea el archivo package.json con los metadatos del proyecto, unos scripts y las dependencias del proyecto.

  • Crear el archivo de entrada principal de la aplicación index.js (o el nombre que hayamos elegido en el manifiesto):

 1// cargar libreria http:
 2const http = require('http');
 3// definir puerto:
 4const port = 3000;
 5
 6// Crear servidor que tendrá una función lambda con la request y la response:
 7http.createServer((req, res)=>{
 8    // Escribimos la cabecera HEAD de la respuesta con el status y el content-type:
 9    res.writeHead(200, {'Content-Type': 'text/plain'});
10    // escribimos el cuerpo del mensaje http BODY:
11    res.write('Muestra en navegador del servidor');
12    // cerramos la respuesta:
13    res.end();
14}).listen(port, () =>{ // se concatena un listen con el puerto y un mensaje para confirmar que el servidor esta operativo
15    console.log('Servidor ejecutandose en localhost:3000');
16});

Enrutamiento#

Este es un ejemplo de enrutamiento básico en Nodejs:

 1const http = require('http');
 2const port = 3000;
 3
 4http.createServer((req, res)=>{
 5    // cargamos un switch y ponemos en valor la request:
 6    switch(req.url){
 7        // cada opción será una ruta:
 8        case '/':
 9            res.writeHead(200, {'Content-Type': 'text/plain'});
10            res.write('Muestra en navegador del servidor');
11            break;
12        case '/about':
13            res.writeHead(200, {'Content-Type': 'text/plain'});
14            res.write('Pagina About');
15            break;
16        default:
17            res.writeHead(404, {'Content-Type': 'text/plain'});
18            res.write('Pagina no existe');
19    }
20
21    res.end();
22}).listen(port, () =>{
23    console.log('Servidor ejecutandose en localhost:3000');
24});

Cargar datos en JSON#

El uso más común en Node.js es servir contenido json. Este es un ejemplo de uso:

 1const http = require('http');
 2const port = 3000;
 3
 4// establecemos una coleccion de datos hardcodeada:
 5let consolas = [
 6    {marca: 'Sony', modelo: 'PlayStation', lanzamiento: 1994},
 7    {marca: 'Sega', modelo: 'MegaDrive ', lanzamiento: 1991},
 8    {marca: 'Nintendo', modelo: 'Gameboy', lanzamiento: 1989},
 9    {marca: 'Microsoft', modelo: 'XBOX', lanzamiento: 2001},
10]
11
12http.createServer((req, res)=>{
13    switch(req.url){
14        case '/':
15            res.writeHead(200, {'Content-Type': 'text/plain'});
16            res.write('Muestra en navegador del servidor');
17            break;
18        case '/about':
19            res.writeHead(200, {'Content-Type': 'text/plain'});
20            res.write('Pagina About');
21            break;
22        case '/consolas': // en esta ruta enviaremos los datos en formato json:
23            res.writeHead(200, {'Content-Type':'application/json'});
24            res.write(JSON.stringify(consolas)); // parseamos a json la colección
25            break;
26        default:
27            res.writeHead(404, {'Content-Type': 'text/plain'});
28            res.write('Pagina no existe');
29    }
30
31    res.end();
32}).listen(port, () =>{
33    console.log('Servidor ejecutandose en localhost:3000');
34});

Paquetes Interesantes#

Nodemon#

Es un comando que ejecuta el servidor node.js en modo live refresh. De forma que al realizar cambios en el código estos se refrescan.

  • Instalar nodemon: npm install nodemon

  • Añadir comando nodemon a package.json:

 1{
 2    "name": "server",
 3    "version": "1.0.0",
 4    "description": "",
 5    "main": "index.js",
 6    "scripts": {
 7        "test": "echo \"Error: no test specified\" && exit 1",
 8        "start": "nodemon index"
 9    },
10    "author": "",
11    "license": "ISC",
12    "devDependencies": {
13        "nodemon": "^2.0.15"
14    }
15}
  • Ejecutar nodemon: npm start.