Javascript nodejs回调:不';不要检测任何错误,就像根本没有错误一样
Node js/Javascript在查询mysql服务器时未捕获错误 nodejs服务器从表单查询Javascript nodejs回调:不';不要检测任何错误,就像根本没有错误一样,javascript,node.js,Javascript,Node.js,Node js/Javascript在查询mysql服务器时未捕获错误 nodejs服务器从表单查询submittedName,检查数据库以及submittedName。如果submittedName与submittedName匹配,则呈现成功。如果不匹配,则应呈现notfound。 但事实并非如此。相反,它带来了成功。即使输入错误 app.post("/whatisyourname", (req, res) => { var submittedName = req.body.deta
submittedName
,检查数据库以及submittedName
。如果submittedName
与submittedName
匹配,则呈现成功
。如果不匹配,则应呈现notfound
。
但事实并非如此。相反,它带来了成功。即使输入错误
app.post("/whatisyourname", (req, res) => {
var submittedName = req.body.details;
console.log(details);
//query the mysql database
conn.query(
"SELECT * FROM giftapp where name= ?",
submittedName,
(err, rs) => {
//handle the error
if (err) {
console.log(err);
//while it should render the "notfound" file,
//it renders "success"
res.render("notfound");
} else {
//if no error, render success
res.render("success", { myR: rs[0] });
}
}
);
我希望在输入错误或任何错误的情况下被转发到“notfound”
如果输入正确,则转发到“success”,express服务器或sql连接或回调在这种情况下不会抛出任何错误。如果查询数据库时出现错误,即查询无效或连接错误等,您将得到一个错误。在您的情况下,查询将成功执行,并给出一个空数组的结果。您需要手动检查并返回结果。更改您的代码,如:
var submittedName = req.body.details;
var sql = 'SELECT * FROM giftapp WHERE name = ?';
con.query(sql, [submittedName], function (err, result) {
if (err) res.render("notfound"); // if you view is called notfound.ejs remove the space between not and found.
console.log(result);
res.render("success", { myR: result[0] }); // need success.ejs
});
app.post("/whatisyourname", (req, res) => {
const submittedName = req.body.details;
console.log(details);
//query the mysql database
conn.query(
"SELECT * FROM giftapp where name= ?",
submittedName,
(err, results) => {
if (err) {
console.log(err);
res.render("notfound");
} else {
if (results && results.length > 0) {
res.render("success", { myR: results[0] });
} else {
res.render("notfound");
}
}
});
});
希望这有帮助:)res.send(“未找到”),我想。。。如果没有“not found”视图,则该视图称为“notfound.ejs”,但这不是问题所在。事实上,当出现错误时,它不会显示“notfound”。@谢谢,我不知道有什么东西存在。我现在才意识到。正如穆罕默德提到的。谢谢