gpt4 book ai didi

javascript - Node.js 和 Express.js 错误 : Can't set headers after they are sent

转载 作者:太空宇宙 更新时间:2023-11-04 02:53:24 25 4
gpt4 key购买 nike

我是 Node 土地的新手,我有一个像下面这样的情况,我首先想设置一个 cookie,然后重定向到其他网址。但我收到错误 - 未处理的拒绝错误:发送后无法设置 header

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');

我经历过这个Node.js Error: Can't set headers after they are sent并了解 res.redirect() 正在尝试重写 header ,但不知道如何解决此问题。

编辑:完整代码。

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);
});
});

最佳答案

问题出在这部分:

Models.user_ride.create({user_id:user.user_id,route_id:req.body.route_id}).then(function(userroute){
res.send(user);
});

res.redirect('/route1');

您既使用 res.send() 发送响应,又使用 res.redirect() 执行重定向。您需要选择其中之一。

关于javascript - Node.js 和 Express.js 错误 : Can't set headers after they are sent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30998061/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com