gpt4 book ai didi

javascript - 如何捕获 Node mySQL 查询中的错误?

转载 作者:太空宇宙 更新时间:2023-11-03 11:27:39 25 4
gpt4 key购买 nike

我的应用程序使用 nodejs 和 mysql。我以这种方式进行数据库查询:

try {
myDB.query(SQL, object, (err, res) => {
if (err) throw err
...
}
} catch (err) {
console.log(err.message)
}

但这是行不通的,因为异步 query 函数。那么如何捕获那些可能在回调中发生的错误呢?请帮忙。

最佳答案

您不能在带有回调的异步代码中throw。您必须使用异步错误处理:

function makeQuery(callback) {
myDB.query(SQL, object, (err, res) => {
if (err) {
callback(err)

return
}

...
}
}

由调用者提供一个合适的回调函数,该函数接受 (err, response) 或类似的东西。拦截、处理或转发任何和所有错误也是调用者的责任。

如果您使用 Promise 驱动的代码,您可以将 .catch()async 函数与 await 一起使用,这将在 尝试Sequelize是一个很好的 Promise 驱动的数据库驱动程序。

然后你的代码看起来像这样:

let result = await myDB.query(SQL, object)

这显然更干净。

关于javascript - 如何捕获 Node mySQL 查询中的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53013619/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com