我有一个表单,可以对路由发出请求。它接受一些输入并保存到数据库。然后,我成功保存后,重定向到我所在的原始页面。我的代码如下:
router.post("/save", function (request, response, next) {
const metadata = {
user: currentUser.name + " " + currentUser.surname
date: <some-val>
};
form.parse(request, function(err, fields, files){
if(!fields.name){
return response.status(400).send({"status": "error", "message": "The name is required" });
}
else if(!fields.description){
return response.status(400).send({"status": "error", "message": "The description is" +
" required" });
}
MediaH.upload(files, metadata, function (error, result) {
if(error){
return response.send(error);
} else {
Model.save(fields, result, metadata, function (error, result) {
if(error) {
return response.send(error);
}
else{
return response.redirect("/pages")
}
});
}
});
});
});
重定向成功,但是如果我再次尝试重新上传到我的表单,则会出现Error: Can't set headers after they are sent.
错误。我不知道我哪里出错了。我看了几个关于Stack Overflow的类似问题,有些人建议为return
做一个response.redirect
,但它仍然没有用。
有人可以帮忙吗?
修改
将整个路线放在上面。