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.