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:
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.
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:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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) |
Comentarios
Publicar un comentario