node.js에 express와 통합 된 swagger와 아래 정의 된 리소스를 사용하는 API가 있습니다. swagger의 기본 오류 처리기가 (! req.params.id)에 대한 검사에서 발생하는 swagger 오류를 포착합니다. mongoDB delete 콜백에서 콜백으로 던져진 에러는 잡히지 않아, 아래 에러가 나옵니다. 이 오류는 콜백 함수의 범위/순서와 관련이있는 것처럼 보입니다. node.js를 처음 접하는 누군가는 비동기를 유지하면서 올바르게 수행하는 방법에 대한 조언을 얻기를 바랍니다. 비동기 콜백 내에서 발생node.js : 오류가 발생하여 잡히지 않았습니다.
events.js:74 throw TypeError('Uncaught, unspecified "error" event.'); ^TypeError: Uncaught, unspecified "error" event.
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'});
});
}
};
을 적발하지 무엇을 의미합니까, 그것은 일부 사용자 지정 오류 처리기에 의해 체포하지 않거나 않습니다 콘솔에 오류가 발생하지 않습니까? – adeneo
비동기 처리기에서 throw 된 예외를 쉽게 catch 할 수 없습니다. 예외를 던지게하는 문제를 수정하면 어떨까요? – Pointy