ano*_*non 0 javascript cookies http node.js express
我是节点之地的新手,我有一个像下面的情况,我首先想要设置一个cookie,然后重定向到其他网址.但是我得到了错误 - Unhandled rejection Error: Can't set headers after they are sent.
user_details = [req.body.user_name, req.body.user_email, req.body.user_contact, req.body.route_id];
var user_details_str = JSON.stringify(user_details);
res.cookie('user_details', user_details_str, {maxAge : 7 * 24 * 3600000, httpOnly:false});
res.redirect('/route1');
Run Code Online (Sandbox Code Playgroud)
我经历了这个Node.js错误:在发送之后无法设置标头并且理解res.redirect()为尝试重写标头但不知道如何解决此问题.
编辑:完整的代码.
router.post('/register', encryptor.encryptUserPassword, function(req, res, next) {
req.body.confirmed = false;
Models.users.create(req.body).then(function(user) {
user_details = [req.body.user_name, req.body.user_email, req.body.user_contact, req.body.route_id];
var user_details_str = JSON.stringify(user_details);
res.cookie('user_details', user_details_str, {maxAge : 7 * 24 * 3600000, httpOnly:false});
user.user_pass = '';
sess = res.session;
// sess.email = user.user_email;
Models.user_ride.create({user_id:user.user_id,route_id:req.body.route_id}).then(function(userroute){
res.send(user);
});
res.redirect('/route1');
}).error(function(err) {
res.send(err);
}).catch(Sequelize.ValidationError, function(err) {
res.send(err);
});
});
Run Code Online (Sandbox Code Playgroud)
问题是这部分:
Models.user_ride.create({user_id:user.user_id,route_id:req.body.route_id}).then(function(userroute){
res.send(user);
});
res.redirect('/route1');
Run Code Online (Sandbox Code Playgroud)
您正在使用res.send() 并使用执行重定向发送响应res.redirect().你需要选择其中一个.
| 归档时间: |
|
| 查看次数: |
2905 次 |
| 最近记录: |