Javascript 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

Node js/Javascript在查询mysql服务器时未捕获错误

nodejs服务器从表单查询
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”。@谢谢,我不知道有什么东西存在。我现在才意识到。正如穆罕默德提到的。谢谢