NodeJS y NPM
NodeJS, Javascript del lado del servidor.
NodeJS es un entorno de programación en tiempo de ejecución, multiplataforma, basado en lenguaje Javascript y en el motor Chrome v8. Gestionado mediante eventos, permite realizar aplicaciones web a través de peticiones asíncronas y a diferencia de otras librerías similares destaca por su gran rendimiento con la ayuda del motor de Javascript (v8) creado por Google.
A continuación se indica como realizar la instalación de NodeJS como también la instalación de dependencias básicas de NodeJS.
INSTALAR NODE
Linux
curl -sL https://deb.nodesource.com/[version] | bash -
apt-get install -y nodejs
wget -qO- https://deb.nodesource.com/setup_14.x | bash -
apt-get install -y nodejs
curl -sL https://deb.nodesource.com/[version] | sudo -E bash -
sudo apt-get install -y nodej
Instrucciones de instalación de las distintas versiones aquí.
Windows
Descargar instalador desde la sección de descargas de la página de NodeJS
Versión
node -v
ACTUALIZAR NODE
npm cache clean -f
npm install -g n
Versión a actualizar
n stable
n latest
n [x.x]
CONSOLA DE NODEJS
Para acceder a la consola es suficiente con introducir la palabra node desde la terminal.
node
NPM
Es el gestor de paquetes de NodeJS y viene incluido en el paquete instalador de NodeJS. NPM permite la instalación de módulos, los cuales se pueden buscar desde el buscador de NPM.
COMPROBAR VERSIÓN NPM
npm -v
CREAR PROYECTO
npm init
El comando init genera el archivo package.json con un contenido similar al que se muestra en la siguiente ventana de código.
{
"name": "proyecto_prueba",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "MIT"
}
Comprobar versión de NPM
npm -v
Actualizar a la última versión estable de NPM
npm install -g npm@latest
Actualizar a la última versión de npm
npm install -g npm@next
Actualizar a una versión específica
npm install -g npm@[X.X]
Limpiar caché (recomendado en la instalación de paquetes)
npm cache clean -f
Desactivar auditorías de NPM
npm set audit false
INSTALACIÓN DE DEPENDENCIAS BÁSICAS
La instalación de dependencias se realiza mediante el gestor NPM y añadiendo el comando install seguido del nombre de la dependencia. En versiones anteriores es necesaria la opción --save o -s, sin embargo en las últimas versiones esta opción no es necesaria.
INSTALAR EXPRESS
npm install express --save
La instalación de Express permite trabajar con el protocolo http, permite definir rutas, etc...
INSTALAR BODY-PARSER
npm install body-parser --save
Body-parser permite convertir peticiones a objetos JSON
INSTALAR CONNECT-MULTIPARTY
npm install connect-multiparty --save
Connect-multiparty permite manejar archivos para subirlos al servidor
INSTALAR MONGOOSE
npm install mongoose --save
Mongoose dispone de una serie de métodos que facilitan el intercambio de datos con MongoDB.
INSTALAR NODEMON
npm install nodemon --save-dev
Nodemon detecta cambios en el código y en consecuencia reinicia el servidor para actualizar los cambios. Es necesario añadirlo a la propiedad start del objeto scripts en el archivo package.json
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "nodemon index.js"
INSTALAR MOMENT
npm install moment
Moment permite crear fechas y formatearlas en distintos formatos.
DESINSTALAR DEPENDENCIAS
Desinstalar una dependencia es similar a instalar, basta con sustituir el comando install por uninstall.
DESINSTALAR EXPRESS
npm uninstall express
AUTOMATIZACIÓN DE TAREAS
NPM permite automatizar tareas desde el archivo package.json. Para ello es necesario añadir dicha tarea o tareas en la sección de scripts. A continuación un ejemplo que añade dos tareas.
{
"name": "proyecto_prueba",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"tarea" : "npm audit && node index.js"
},
"author": "",
"license": "MIT"
}
Para realizar la tarea o tareas es necesario incluir el comando run seguido del nombre de la propiedad asignada
npm run tarea
OBJETOS ESPECIALES DEL ENTORNO DE NODE
Buffer
Permite manejar archivos binarios
console.log(Buffer(10));
Process
Muestra información del proceso de Node que se está ejecutando, información del sistema, recursos,...
console.log(process.platform);
console.log(process.execPath);
console.log(process.env);
process.env.colorFavorito = "rojo";
console.log(process.env.colorFavorito);
IMPORTAR PAQUETES EXTERNOS
Importar un paquete externo suele ser una tarea rutinaria en el entorno Node. Para importar un paquete es necesario instalarlo desde la terminal con NPM y desde el archivo JS realizar la llamada o require al archivo.
Instalar paquete
npm install express
Importar paquete
var express = require("express");
En caso de error es posible comprobar si el paquete está correctamente instalado o si el nombre es el mismo que se está importando. Para ello se despliega la carpeta node_modules y en su interior se revisa si existe la carpeta o si ésta tiene un nombre distinto.
IMPORTAR PAQUETES LOCALES
Importar un paquete del propio proyecto es prácticamente igual que un paquete externo, la única diferencia es la ruta, ya que si solamente se indica el nombre del módulo o paquete, Node automáticamente buscará en el directorio de dependencias node_modules, por tanto, es necesario especificar la ruta exacta del módulo. A continuación un ejemplo de un módulo básico que se encuentra en la raíz del proyecto y un archivo desde donde se llama al módulo que también se encuentra en la raíz.
modulo.js
var modulo = {
saludar: function(nombre){
console.log("Bienvenido " + nombre);
},
despedir: function(nombre){
console.log("Adiós " + nombre);
}
}
module.exports = modulo;
app.js
var modulo = require("./modulo");
modulo.saludar(Jose);
De esta forma Node permite importar los módulos de una forma realmente sencilla, tal como incluye la línea final del código anterior (del archivo de ejemplo modulo.js), es imprescindible asignar el módulo y en caso de ser más de uno indicarlo como un objeto.
module.exports = {
modulo,
moduloDos,
moduloTres,
}
PAQUETES PREINSTALADOS DE NODE
Node dispone de algunas dependencias ya preinstaladas que suelen ser las más comunes y útiles en un proyecto. Módulos como http y url para archivos externos, path y fs para archivos internos, util que permite comprobar tipos de datos o module que permite exportar módulos locales, se pueden consultar los módulos desde la página oficial de NodeJS.
CONEXIÓN CON BASE DE DATOS
La conexión con la base de datos se realiza con Mongoose mediante su método connect.
Ejemplo de prueba de conexión con base de datos con Mongoose en forma de promesa.
"use strict"
var mongoose = require("mongoose");
mongoose.Promise = global.Promise;
mongoose.connect("mongodb://localhost:27017/[base_datos]")
.then(() => {
console.log("Conexión a la base de datos establecida satisfactoriamente");
})
.catch(err => console.log(err));
Para comenzar la ejecución de un proyecto NodeJS y comprobar la correcta conexión es posible mediante ng serve
ng serve
O si se está en la fase de desarrollo usando nodemon es posible mediante npm start
npm start
Para poder comentar es necesario iniciar sesión