0
我是新來的節點土地,我有一個像下面這樣的情況,我首先想要設置一個cookie,然後重定向到其他URL。但是我收到錯誤 - Unhandled rejection Error: Can't set headers after they are sent
。Node.js和Express.js錯誤:它們發送後無法設置標題
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()
試圖重寫頭,但不知道如何來解決這個問題。
編輯:完整的代碼。
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);
});
});
您發佈的代碼沒有錯,所以我猜你沒有顯示所有相關的代碼。 – robertklep
嘗試'返回res.redirect('/ route1');' –
@robertklep在編輯中發佈了完整的代碼。 – anon