Tengo una aplicación express así:
// index.js const express = require('express'); const app = express(); const userRoutes = require('./routes/userRoutes'); app.use('/user', userRoutes); const verifyToken = (req, res, next) => { // validate req.cookies.token next(); }
Y estoy usando un módulo de enrutador express como este:
// routes/userRoutes.js const express = require('express'); const router = express.Router(); router.get('/:userid/data', verifyToken, async (req, res) => { const data = await db.query() res.json(data) });
Obviamente, esto no funciona porque verifyToken
no es accesible dentro del módulo. ¿Cómo puedo usar la misma función de middleware verifyToken
en diferentes módulos expresos?
Mueva export
token de verificación a un archivo diferente y verifyToken
desde allí.
Luego puedes import
en otros lugares.
Una cosa que puede hacer, que funciona bien, es agrupar todas sus rutas autenticadas en una ruta común y usar router.use
para asegurarse de aplicar el middleware de verifyToken
en todas ellas.