¿Qué es express?
Express.js es un framework web minimalista para Node.js. No hace magia, te da solo lo necesario para manejar rutas, middlewares, peticiones y respuestas HTTP. Es como un lienzo limpio sobre el que puedes construir lo que necesites.
Ventajas
Algunas de las principales ventajas de express:
- Rápido y liviano.
- Middleware-based: todo pasa por funciones encadenadas.
- Extremadamente flexible.
- Gran ecosistema y comunidad.
Setup Inicial
1. Iniciar el proyecto:
2. Instalar express:
Configuración del servidor
1
2
3
4
5
6
| const app = require('./src/app');
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
console.log(`Servidor corriendo en http://localhost:${PORT}`);
});
|
- 📁
src/controllers/
-
user.controller.js
1
2
3
4
5
6
7
8
9
10
11
12
| const users = [];
exports.getAllUsers = (req, res) => {
res.status(200).json(users);
}
exports.createUser = (req, res) => {
const { name, email } = req.body;
const newUser = { id: Date.now(), name, email };
users.push(newUser);
res.status(201).json(newUser);
}
|
Los métodos en el objeto de respuesta descrito como res
en la siguiente tabla puede enviar una respuesta al cliente y terminar el ciclo de solicitud/respuestas si ninguno de estos métodos se invocan desde un manejador de rutas la solicitud del cliente se dejará colgada.
Método | Descripción |
---|
res.download() | Solicita un archivo para descargarlo. |
res.end() | Finaliza el proceso de la respuesta. |
res.json() | Envia una respuesta JSON. |
res.jsonp() | Envia una respuesta JSON con soporte JSONP. |
res.redirect() | Redireccionar una solicitud. |
res.render() | Representar una plantilla de vista. |
res.send() | Envia una respuesta de varios tipos. |
res.sendFile() | Envía un archivo como secuencia oectetos. |
res.sendStatus() | Establece el código de estado de la respuesta y envía su representación de serie como cuerpo de respuesta. |
1
2
| res.download("/report-1234.pdf");
res.download("/report-1234.pdf", "report.pdf");
|
1
2
| res.end()
res.status(404).end()
|
1
2
3
| res.json(null);
res.json({user: 'mcherrera'});
res.json({data: [{},{},{}]});
|
1
2
3
| res.redirect('/foo/bar');
res.redirect('http://example.com');
res.redirect(301, 'http://example.com');
|
1
| res.render(view, [,locals][,callback])
|