node.js - 使用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');
})
解决方案
尝试更新您的 if 条件以返回。否则它可能会尝试调用redirect
then next
。
if(!req.isAuthenticated()) return res.redirect(301,'/login');
推荐阅读
- regex - 使用正则表达式模式从日志文件中解析数据
- vue.js - UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'length' of undefined on Laravel Mix with vuetify-loader
- sql - SQL:是否可以将 data_type 传递给变量中的函数?(功能转换)
- c# - 将来自 DataReader 的所有结果以 JSON 格式写入文件,同时保持整个结果集超出内存
- mysql - 我如何在这个查询中得到正确的结果?
- python - python多处理池 - 创建的工人数量错误
- python - Opencv 2.4.13 需要 python 2.7,但是 Monoocular Total Capture repo 需要 python 3.5
- c# - BigInteger.TryParse 在本地工作,但不能在 Azure VM 上工作
- python - 如何检查熊猫列是否包含值
- java - 如何用这个字符串分割一个字符串:|||