发送后无法设置标头 - Node.js重定向表单问题

时间:2017-04-06 23:16:31

标签: node.js

我有一个表单,可以对路由发出请求。它接受一些输入并保存到数据库。然后,我成功保存后,重定向到我所在的原始页面。我的代码如下:

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,但它仍然没有用。

有人可以帮忙吗?

修改

将整个路线放在上面。

0 个答案:

没有答案