所以我在typescript中编写了一个函数,如下所示:
userUtils.ts
export async function update(id:string, userDetails:Object) {
return await User.findOneAndUpdate({_id: id}, userDetails, (err, response) => {
if (err) {
console.log('Error : ', err);
throw new Error ("error in your request");
}
});
}
在nodejs的控制器文件中,我调用该函数来更新用户集合,如下所示:
try {
userUtils.update(id, userDetails).then(function (err, answer) {
res.status(200).json(answer);
}).catch(function (e) {
log.error('User update error : ', e);
errors.handleError(res, {"error": "error in your request"});
});
} catch (e){
log.error('error : ', e);
}
现在的问题是,我发送了不存在的userId。 Mongo返回强制转换错误,在ts中我抛出异常。我的nodejs控制器中的函数没有捕获异常。如何编写这样以便捕获异常并且前端应用程序得到正确的响应?
任何catch都没有捕获抛出的错误,并返回到行res.json();在哪里记录错误并回答两者是未定义的。