我刚刚开始使用 mssql 包从 NodeJS 查询我的数据库。我的问题是关于错误处理...对于初学者,这是我的模块导入:
const sql = require('mssql');
const config = require('./pathToMyConfig.js');
我可以看到模块公开的大多数方法都可以作为 Promise 进行处理,并且 .catch()
可用于处理错误。
sql.connect(config).query("SELECT * FROM Customers").then().catch(err => {...});
但我还可以在文档中看到,有时他们会在导入的 mssql 模块上调用 .on('error')
。
sql.connect(config).query().then();
sql.on('error', err => {...});
这两个有什么区别?我想 .catch
只处理 Promise 主体上的错误,而 .on('error')
处理所有未捕获的内容?
是否还有其他差异,或者可能有相关约定?
最佳答案
如果初始化连接时发生错误,将调用
sql.on('error', err => {...});
。这允许您在初始化期间处理任何异常。
.catch(err => {...}) 用于捕获查询执行期间发生的任何错误。
关于javascript - NodeJS/mssql 错误处理差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48113700/