De Laravel a Node.js: Routing y Middleware

Si vienes de de Laravel, y estas empezando a programar tus primeros proyectos con Node.js, seguro que te has preguntado cómo puedes organizar muchas rutas con diferentes middlewares en tu app.

Y es que, una de las comodidades que ofrece Laravel es la forma tan sencilla de poder administrar un gran número de routes con diferentes middleware, haciendo grupos con éstas.


En Node.js, usando Express.js también es posible. Imaginemos que queremos definir definir dos tipos de accesos en nuestra web, uno para los usuarios logeados y otro para los administradores. Podríamos hacer algo parecido a esto:

var express = require('express')
var app = express()
function userMiddleware(req, res, next) {
// Aquí el código para comprobar si el usuario está logeado
next();
}
function adminMiddleware(req, res, next) {
// Aquí el código para comprobar si es un admin logeado
next();
}
app.get('/', function(req,res) {
res.send('Hello World!');
})
// Define aquí las rutas para admins
app.use('/admin', adminMiddleware);
app.get('/admin/route1', function(req,res) {
// Codigo aquí
})
app.get('/admin/route2', function(req,res) {
// Codigo aquí
})
// Define aquí rutas para usuarios logeados
app.use('/user', userMiddleware);
app.get('/user/route1', function(req,res) {
// Codigo aquí
})
app.get('/user/route2', function(req,res) {
// Codigo aquí
})
app.listen(3000)
view raw app.js hosted with ❤ by GitHub
Importante es la llamada a la funcion next() dentro de la función del middleware, que permitirá continuar la aplicación en el caso de que se cumplan los requisitos que exigimos en dicha función.

Comentarios

Entradas populares de este blog