【发布时间】:2020-01-04 21:57:42
【问题描述】:
我有一个与 PassportJS 连接的身份验证路由,如下所示:
router.post('/',
passport.authenticate('local', { failureRedirect: '/' }),
async (req, res, next, done) => { // Middleware 1
console.log('FIRST MIDDLEWARE');
const { body: { remember_me, username } } = req;
// issue a remember me cookie if the option was checked
if (!remember_me) { return next(); }
const token = uuidv4();
const tokenEntry = await new Token({ token, userId: req.user.id }).save();
console.log('TOKEN ENTRY', tokenEntry);
return next();
},
(req, res) => { // Middleware 2
console.log('SECOND MIDDLEWARE');
res.cookie(process.env.USER_DATA_COOKIE, signedUserData(req), {
httpOnly: true,
secure: true,
});
res.json({ success: true });
});
但是在运行时,第一个 console.log() 永远不会执行。为什么?它不应该在第二个之前调用吗?
【问题讨论】:
标签: node.js express middleware