我正在尝试更新我的mongodb数据库更新,然后将用户重定向到具有表单的页面。
这是通常的问题 “将标头发送到客户端后无法设置标头” 该消息经常发布在这里,但找不到解决我问题的方法。
我正在使用nodeJS表示,没有php或jquery。
const mongoose = require('mongoose');
var User = mongoose.model('user');
var createUser = function(req, res){
console.log(req.body)
var user = new User({
"firstname": req.body.firstname,
"surname": req.body.surname,
"email": req.body.email,
"age": req.body.age
});
user.save(function(err, newUser){
if(!err){
res.send(newUser);
}
else{
res.sendStatus(400);
}
});
res.redirect('/');
};
module.exports.createUser = createUser;
我收到错误消息“将标头发送到客户端后无法设置标头”
它确实更新了我的mongodb数据库,但之后使服务器崩溃了。
不太熟悉请求中的标头,将不胜感激:)
答案 0 :(得分:0)
由于查询已成功执行,因此此处的if
块将被执行,这将向客户端发送一些响应。然后其余的执行将继续进行,直到res.redirect('/')
再次尝试发送一些响应(来自/
路由中的任何内容)。
user.save(function(err, newUser){
if(!err){
// Here >>
res.send(newUser);
}
else{
res.sendStatus(400);
}
});
// and finally >>
res.redirect('/');
因此return res.send(newUser);
或仅在结尾处进行重定向不是全部