我在"发送后无法设置标头。"问题,发现当res.render()被调用两次但是我没有找到可以帮助我的确定解决方案时会发生这个错误...
在我的情况下,我需要在每次向索引页面发出GET请求时验证会话,并且如果会话中有用户显示带有相关参数的索引页面......
有什么想法吗?
var express = require('express');
var path = require('path');
var Schemes = require('../library/dbModels.js');
var router = express.Router();
/* GET home page and preform validation on user */
router.get('/index',function(req, res){
if(req.session && req.session.user)
{
Schemes.User.findOne({eMail:req.session.user.eMail},function(err,user) {
if(!user)
{
req.session.reset();
res.render('login',{error:"Please log in ..."})
}
else
{
res.locals.user=user;
res.render('index',{user:user});
}
});
}
else{
res.render('login',{error:"Please log in ..."})
}
res.render('index', { title: 'Index' });
});
module.exports = router;
答案 0 :(得分:1)
我删除了上一个res.render('index', { title: 'Index' });
,因为在else
的{{1}}条件下执行了同样的操作。
if(!user)