【发布时间】:2019-03-03 16:44:34
【问题描述】:
需要终止POST函数并发送Error: something作为响应,而不终止程序。
示例for-loop:
for (let i = 0; i < req.body.listoftouristsbyid.length; i++) {
client.query("SELECT tourists.id FROM tourists WHERE tourists.id = " + req.body.listoftouristsbyid[i], function(err, result) {
done();
if (result.rows.length === 0) {
console.log("Tourist " + req.body.listoftouristsbyid[i] + " you want to add does not exist");
res.status(500);
return res.render("Bad listoftoutistbyid request, student with id " + i + " does not exist");
}
})
}
我应该写什么来代替 return res.render,这样 POST 将不起作用,函数将终止并返回错误代码作为响应,但不会导致程序崩溃,因此我可以稍后发送更多请求?
【问题讨论】:
-
我不会向 DB 发出大量请求,而是通过将它们与
OR组合来进行一个查询 ... -
我希望你做输入验证。
-
你可以使用
try ... catch声明。 -
这意味着您网站的任何访问者都可以使用您的数据库xkcd.com/327
-
好吧,不要在循环中做很多查询,并在每个查询返回后尝试发送响应。只能有一个响应。
标签: javascript node.js express ecmascript-6 ecmascript-2017