Javascript MySQL错误/异常导致节点js服务器崩溃

Javascript MySQL错误/异常导致节点js服务器崩溃,javascript,mysql,node.js,Javascript,Mysql,Node.js,当MySQL返回错误/异常时,我的nodejs服务器崩溃 这是我后端的代码。我在查询函数中使用了if-else,然后得到了响应,但我的服务器崩溃了。用try-and-catch,它仍然崩溃,我没有得到任何回复 Rezervacija.create = function (newEmp, result) { try{ konekcija.query("INSERT INTO rezervacija set ?", newEmp, function (err, res) {

当MySQL返回错误/异常时,我的nodejs服务器崩溃

这是我后端的代码。我在查询函数中使用了if-else,然后得到了响应,但我的服务器崩溃了。用try-and-catch,它仍然崩溃,我没有得到任何回复

Rezervacija.create = function (newEmp, result) {
try{
  konekcija.query("INSERT INTO rezervacija set ?", newEmp, function (err, res) {
  
  console.log(res.insertId);
  result(null, res.insertId);

});
}
catch(err){
  result(err, null);
  console.log("Error",err);
}
};
我试了,试了,接了,但似乎不起作用,也许我用错了?我对JS真的很陌生,还在学习

我看到的唯一解决方案是捕获错误,这样就不会使服务器崩溃


提前感谢。

我从未在node上使用过mysql,但官方示例和您的示例之间存在差异

connection.query('INSERT INTO posts SET ?', {title: 'test'}, function (error, results, fields) {
  if (error) {
    throw error;
  }
  console.log(results.insertId);
});
对我来说,每次当你使用回调函数时,你必须首先处理其中的错误,然后当你调用你的函数时,你也必须处理错误

作为示例,您可以尝试以下方法:

Rezervacija.create = function (newEmp, result) {
    konekcija.query("INSERT INTO rezervacija set ?", newEmp, function (err, res) {
        if (err) {
            throw err;
        }
        
        console.log(res.insertId);
        result(null, res.insertId);
    });
};

由于我是斯拉夫人,我理解你的变量,但如果你在代码中使用英语作为变量、函数等的名称会更好。

我用人的方式解决了这个问题

我所做的是在mysql parser.js中注释了这一行,它在第437行抛出了一个错误。在您的响应中,您仍然会收到来自MySQL数据库的错误消息,但它不再使服务器崩溃

如果我能得到一个更好的答案,我一定会用它


但是,由于这是一个大学项目,这将很好:)

谢谢您的时间。我会用英语保留变量,只是觉得这几个词无关紧要。这对我的情况仍然没有帮助,因为我想绕过这个错误。抛出错误会导致无法获得响应,并且仍然会导致服务器崩溃。但是谢谢你的时间:)@DominikKukovec有没有导致崩溃的错误?我收到了由MySQL和ERR_HTTP_HEADERS_发送的异常引起的ER_SIGNAL_EXCEPTION。@DominikKukovec你有没有检查过我是否通过了这个问题,在那个线程中我应该使用async wait来解决这个问题?