Express.js
Express.js es un framework web para Node.js, diseñado para la creación de aplicaciones web y APIs. Es minimalista y flexible, proporciona un conjunto de características para desarrollo web como: gestionar rutas, manejar solicitudes HTTP, entre otros.
Algunas de sus aplicaciones que se puede implementar con Express.js son:
- Aplicaciones web: Permite desarrollar aplicaciones web, facilitando el manejo de rutas, plantillas, y middleware.
- APIs RESTful: Facilita la creación de APIs RESTful, proporcionando métodos para manejar solicitudes HTTP.
- Aplicaciones en tiempo real: Con paquetes adicionales Express.js puede usarse para crear aplicaciones en tiempo real, como chats y sistemas de notificaciones.
Configuración
Antes de empezar, necesitas tener Node.js y npm (Node Package Manager) instalados en tu máquina. Puedes descargar e instalar Node.js desde su https://nodejs.org/.
1. Crear un nuevo proyecto
Crea una carpeta para tu proyecto, luego inicializa el proyecto de Node.js e instala el paquete Express.
npm init -y
npm install express
2. Crear el servidor con Express.js
Crea un archivo index.js
en el directorio raíz de tu proyecto y agrega el siguiente código donde crearemos un servidor web escuchando en el puerto 3000.
// file: index.js
const express = require('express')
const app = express()
const port = 3000
app.get('/', (req, res) => {
res.send('¡Hola, mundo!')
})
app.listen(port, () => {
console.log(`Listening on port ${port}`)
})
Para ejecutar tu servidor Express, usa el siguiente comando en tu terminal:
node index.js
Para ver el resultado, abre tu navegador e ingresa a http://localhost:3000
.
Enrutamiento
El enrutado consiste en determinar como se va a responder a una solicitud del cliente dependiendo de la ruta y el tipo de solicitud. El enrutamiento tiene la siguiente estructura:
app.METHOD(PATH, (req, res) => {
// process request
})
Donde se tiene:
app
: es la instancia de Express.METHOD
: es el método HTTP de la solicitud en minúsculas (get, post, put, delete)PATH
: es la ruta del servidor con la que puede acceder el usuario.req
: Objeto que contiene los datos del request (headers, query string, body, cookies).res
: Objeto con la respuesta HTTP que express envía al cliente.
Con estos conceptos podemos crear un API RESTful de ejemplo:
// file: api-rest.js
const express = require('express');
const app = express();
const port = 3000;
app.get('/user', (req, res) => {
res.json({ name: 'Louis', email: 'lous@gmail.com', phone: 99999998 });
});
app.post('/user', (req, res) => {
res.send('Create user');
});
app.put('/user', (req, res) => {
res.send('Update user');
});
app.delete('/user', (req, res) => {
res.send('Delete user');
});
app.listen(port, () => {
console.log(`App listening on port ${port}`)
});
Ejecutamos este script en línea de comandos con:
node api-rest.js
Middlewares
Un middleware es una función que tiene acceso a la solicitud (req
), la respuesta (res
) y a la siguiente función en el ciclo de solicitud/respuesta. Esto permite procesar las solicitudes antes que sean procesados por los enrutadores. Se usa el método use
para aplicar los middlewares.
Como ejemplo usaremos dos middlewares: express.json()
que parsea los datos en formato JSON y express.urlencoded({ extended: true })
que parsea los datos del URL.
// file: middleware.js
const express = require('express');
const app = express();
const port = 3000;
app.use(express.json())
app.use(express.urlencoded({ extended: true }))
app.get('/user', (req, res) => {
res.json(req.query);
});
app.post('/user', (req, res) => {
res.json(req.body);
});
app.listen(port, () => {
console.log(`App listening on port ${port}`)
});
Ejecutamos este script en línea de comandos con:
node middleware.js
Conclusión
Express.js es un framework potente y flexible que facilita el desarrollo de aplicaciones web y APIs con Node.js. Su simplicidad y extensibilidad lo hacen adecuado tanto para proyectos pequeños como para aplicaciones más grandes y complejas.
Envíar Comentario
En este sitio los comentarios se publican previa aprobación del equipo de Kodetop. Evita los comentarios ofensivos, obscenos o publicitarios. Si deseas publicar código fuente puedes hacerlo entre las etiquedas
<pre></pre>