首页 > 解决方案 > 使用nodejs中的中间件将标头发送到客户端后无法设置标头

问题描述

我收到此错误

Cannot set headers after they are sent to the client

当我检查用户是否通过中间件进行身份验证时

var isAuthenticated = function (req, res, next) {
    if(!req.isAuthenticated()) res.redirect(301,'/login');
    next();
  };

  module.exports = isAuthenticated;

这是路由功能

router.get('/', isAuthenticated,(req, res) => {
    res.render('main/index.twig');
})

标签: node.jspassport.js

解决方案


尝试更新您的 if 条件以返回。否则它可能会尝试调用redirectthen next

if(!req.isAuthenticated()) return res.redirect(301,'/login');

推荐阅读