【发布时间】:2019-11-15 19:51:41
【问题描述】:
这是我的 HTML 表单:
<form id="task-form" action="/mytask" method="POST">
<input type="text" name="name" placeholder="name of task" />
<input type="text" name="description" placeholder="description" />
<input type="submit" />
</form>
我想将数据存储到一个 MongoDB 中,它可以很好地与以下代码配合使用。不幸的是,在单击按钮后我当然可以看到我不想要的 JSON。
app.post("/mytask", urlencodedParser, (req, res) => {
const task = new Task(req.body);
task
.save()
.then(() => {
res.send(task);
})
.catch(e => {
res.status(400).send(e);
});
});
我还想呈现一个感谢页面,其中包含来自request.body 的信息。这也很好。
app.post("/mytask", urlencodedParser, (req, res) => {
res.render("thankyou", {
name: req.body.name,
description: req.body.description
});
});
但我想两者都做。存储数据并呈现另一个页面,类似这样。
app.post("/mytask", urlencodedParser, (req, res) => {
const task = new Task(req.body);
task
.save()
.then(() => {
res.send(task);
})
.catch(e => {
res.status(400).send(e);
});
res.render("thankyou", {
name: req.body.name,
description: req.body.description
});
});
这似乎是不可能的。错误如下:
[ERR_HTTP_HEADERS_SENT]: C:\Users\User\Desktop\MyExpressApp\views\thankyou.hbs:无法设置 发送到客户端后的标头
我该如何解决这个问题?
【问题讨论】:
标签: node.js express post http-post