【发布时间】:2016-11-05 06:35:15
【问题描述】:
我是使用 node.js 的新手,现在我正在开发一个查询 mongodb 的 API。
下面的函数 apiRequest 需要调用两个函数,每个函数执行一个单独的 db 查询。当前函数的问题是,如果其中一个查询有某种错误,我将无法捕获它。
实现这一点的最佳方法是什么,以便正确处理错误。有人将我指向异步库并提到我必须用 Promise 做一些事情,但我真的想不通。理想情况下,我不想更改 dbQueryOne 和 dbQueryTwo 的定义,因为它们也在其他地方使用。
exports.apiRequest =function(req,res) {
dbQueryOne(req.body.inputA);
dbQueryTwo(req.body.inputA);
res.send('Moved For Further Action',200);
}
【问题讨论】:
-
"...我无法抓住它。" 为什么不呢?您调用的函数要么是同步的,在其中使用
try/catch,要么(可能是这里的情况)它是异步的,在这种情况下,它为您提供了一种发现错误发生的机制。 (这可能涉及承诺,也可能不涉及;在 NodeJS 中,目前通常不涉及,但这种情况正在迅速改变。)
标签: javascript node.js mongodb asynchronous