我有一个使用 swagger 与 node.js 上的 express 集成的 API,以及一个定义如下的资源。在检查 (!req.params.id) 时抛出的 swagger 错误被 swagger 的默认错误处理程序捕获。未捕获 mongoDB 删除调用的回调中引发的错误,给我以下错误。该错误看起来与回调函数的范围/顺序有关,作为 node.js 的新手,我希望获得有关如何正确执行此操作的建议,以保持异步性。-谢谢
events.js:74 throw TypeError('Uncaught, unspecified "error" event.'); ^ TypeError:未捕获的、未指定的“错误”事件。
exports.remove = {
'spec' : {
"collapsed...for...brevity..." : "...",
"params" : [ {
"paramType" : "path",
"name" : "id",
"collapsed...for...brevity..." : "...",
}],
"errorResponses" : [ swe.notFound('id'), swe.invalid('id') ],
"nickname" : "remove"
},
'action' : function(req, res) {
if (!req.params.id) {
throw swe.invalid('id'); // THIS ERROR IS CAUGHT
}
req.coll.remove({_id : req.coll.id(req.params.id)}, function(e, result) {
if (e) {
throw swe.invalid('collection'); // THIS ERROR IS NOT CAUGHT
}
res.send({msg : 'success'});
});
}
};