【发布时间】:2016-06-21 22:31:52
【问题描述】:
我必须使用 try/catch,因为如果 arg 太短,MongoDb 的 ObjectId() 会中断/出错。
当try 很好时,promise .catch 永远不会触发...看起来外部的catch(e) 会捕获promise reject()。这是预期的行为吗?反正周围呢?
function deleteUser(req, res) {
try {
var userId = { '_id': ObjectId(String(req.params.user_id)) };
var petData = _getAllData(userId);
petData
.then(function(doc) {
data.deleteAllData(doc);
result = user.remove(userId);
_returnApi(result, res);
})
.catch(function(err) {
console.log(`error delete user -${err}`);
res.status(500).json({ error: "error deleting user" });
});
}
catch(e) {
res.status(400).json({ error: "user id format incorrect" });
}
}
【问题讨论】:
-
可以分享一下_getAllData代码
-
尝试在
petData.之后添加exec()?
标签: javascript mongodb promise