❓ ¿Qué es Node.js y para qué se usa?
Node.js es un entorno de ejecución de JavaScript construido sobre el motor V8 de Google Chrome. Permite ejecutar JavaScript en el servidor, fuera del navegador.
🌟 Características principales:
-
⚡ Asíncrono y basado en eventos: Maneja operaciones I/O de manera eficiente.
-
💻 Multiplataforma: Compatible con Windows, macOS y Linux.
-
📈 Escalable: Diseñado para manejar un gran número de conexiones simultáneas.
📌 Usos de Node.js:
-
Desarrollo de servidores web.
-
Aplicaciones en tiempo real (chats, juegos).
-
Automatización de tareas (scripts).
-
API RESTful.
🛠 Instalación de Node.js y configuración del entorno
-
📥 Descargar Node.js desde https://nodejs.org
-
⚙️ Instalar según el sistema operativo.
-
✅ Verificar la instalación:
node -v # Verificar versión de Node.js
npm -v # Verificar versión de npm- 📂 Crear un proyecto:
mkdir mi-proyecto
cd mi-proyecto
npm init -y💻 Uso de la línea de comandos (node y npm)
-
🚀 Ejecutar Node.js interactivo:
nodenode > console.log('Hola Mundo'); -
▶️ Ejecutar un archivo:
nodenode app.js -
📦 Uso de
npm(Node Package Manager):nodenpm init -y npm install express npm list
📝 Primer programa en Node.js: "Hola Mundo"
console.log('Hola Mundo desde Node.js');💾 Guarda el archivo como app.js y ejecútalo con:
node app.js⚖️ Diferencia entre Node.js y otros entornos backend
| Característica | Node.js | PHP | Python |
|---|---|---|---|
| Lenguaje | JavaScript | PHP | Python |
| Modelo de ejecución | Asíncrono | Sincrónico | Sincrónico/Asíncrono |
| Escalabilidad | Alta | Media | Alta |
| Rendimiento | Alto | Medio | Alto |
📚 Módulos en Node.js
🔧 Uso de módulos internos (built-in)
-
📂 fs (sistema de archivos):
nodeconst fs = require('fs'); fs.writeFileSync('archivo.txt', 'Hola desde Node.js'); -
🌐 http (servidor web):
nodeconst http = require('http'); const server = http.createServer((req, res) => { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hola Mundo'); }); server.listen(3000); -
📍 path (manejo de rutas):
nodeconst path = require('path'); console.log(path.basename('/ruta/archivo.txt')); -
💻 os (información del sistema):
nodeconst os = require('os'); console.log(os.platform());
🏗 Creación de módulos personalizados
-
📝 Crear un archivo
mimodulo.js:nodemodule.exports = function() { return 'Hola desde mi módulo'; }; -
📥 Importarlo en otro archivo:
nodeconst saludo = require('./mimodulo'); console.log(saludo());
📦 Gestión de paquetes con NPM
❓ ¿Qué es NPM?
NPM es el gestor de paquetes de Node.js que permite instalar, compartir y gestionar dependencias.
⚙️ Instalación de paquetes
npm install express🔄 Dependencias locales vs globales
-
Locales: Instaladas dentro del proyecto.
-
Globales: Disponibles en todo el sistema (
-g).
🏷 Scripts en package.json
{
"scripts": {
"start": "node app.js"
}
}▶️ Ejecutar:
npm start📊 Gestión de versiones
npm list
npm outdated
npm update🔄 Alternativa con Yarn
npm install --global yarn
yarn add express🔄 Programación asíncrona en Node.js
🔄 Callbacks y el problema del "callback hell"
fs.readFile('archivo.txt', (err, data) => {
if (err) throw err;
console.log(data.toString());
});Callback hell:
fs.readFile('file1.txt', (err, data) => {
fs.readFile('file2.txt', (err, data) => {
fs.readFile('file3.txt', (err, data) => {
console.log('Callback hell');
});
});
});🏁 Conclusión
Node.js es una tecnología potente y versátil que permite a los desarrolladores crear aplicaciones del lado del servidor con JavaScript. Su enfoque asincrónico y basado en eventos lo hace ideal para aplicaciones en tiempo real y escalables. Con el uso de módulos internos y externos como NPM, es posible ampliar sus funcionalidades y optimizar el desarrollo de aplicaciones modernas. Aprender Node.js te permitirá dominar el backend con un solo lenguaje de programación, simplificando el stack tecnológico.