====== Node.js ======
Entorno de ejecución de [[informatica:programacion:javascript|JavaScript]]. Utiliza el motor de código abierto [[https://v8.dev/|V8]] de Google que traduce el código JavaScript a lenguaje máquina.
A diferencia de JavaScript que se ejecuta en el navegador, Node.js permite ejecutarlo del lado del servidor.
===== Características =====
* Lenguaje de backend (lado del servidor)
* Acceso al sistema de ficheros del equipo
* Información del sistema operativo
* Información de procesos del equipo
Posibilidades de Node.js:
* Uso de sockets para una comunicación real cliente-servidor.
* Manejo de archivos.
* Cargas simultáneas.
* Servidores locales y remotos con información en tiempo real.
* Conexiones a base de datos.
* Creación de servicios REST en segundos.
Por qué es tan popular:
* Entradas y salidas que no realizan bloqueos del servidor.
* Sumamente rápido y fácil de configurar
* Más de 470 mil paquetes disponibles (ecosistema con más biblotecas en el mundo)
===== Instalación =====
==== Arch Linux ====
pacman -S nodejs
===== npm: gestor de paquetes =====
[[https://www.npmjs.com/|npm]] es el gestor oficial de paquetes de Node.js.
==== Instalación ====
En Arch Linux mediante el paquete ''npm''.
===== Hola, mundo =====
console.log("Hola, mundo")
Si lo guardamos como ''saludo.js'', podemos ejecutarlo con node de la siguiente manera:
node saludo.js
También podríamos haber abierto la consola de node y escribir ahí directamente el código.
Una última opción sería usar la consola de JavaScript que incluyen navegadores como Firefox o Google Chrome, pero aquí no usaríamos node sino el motor de JavaScript que incluyan dichos navegadores.
===== Paquetes =====
==== nodemon ====
Paquete pensado para el desarrollo de aplicaciones basadas en node.js que reinicia automáticamente las aplicaciones de node cuando se detecten cambios en los ficheros de los directorios que se estén monitorizando.
* [[https://www.npmjs.com/package/nodemon|Repositorio oficial]]
Instalación:
npm install -g nodemon
Si ejecutamos una aplicación de Node.js de la siguiente manera:
nodemon app.js
Cada vez que hagamos cualquier modificación en el fichero ''.js'' y guardemos los cambios, ''nodemon'' la relanzará automáticamente.
===== Importar paquetes =====
===== Acceso al sistema de ficheros =====
Con JavaScript no podemos acceder al sistema de ficheros en el que se ejecute el script mediante el navegador. Sin embargo, con Node.js sí es posible ya que se ejecuta desde el servidor (backend).
const fs = require("fs");
fs.writeFileSync("prueba.txt", "¡Hola, mundo!\n");