错误处理node.js
问题描述:
我想创建一个mongoID
使用一个URI片段作为源。但是,除非URI确实包含格式正确的mongoId,否则我会得到下面的错误。错误处理node.js
我应该改变什么来允许_id创建而不会抛出错误,因为将它包装在try/catch
块中并不是这样做的吗?
错误:
500 Error: Argument passed in must be a single String of 12 bytes or a string of 24 hex characters in hex format
代码:
var _id = db.bson_serializer.ObjectID.createFromHexString(req.params.id);
this.db.users.findById(_id, function(err, doc) {
if (!err && !!doc) { res.send(JSON.stringify(doc)); } else {res.send(JSON.stringify({error: "Not found"));}
});
我使用mongoskin
驱动程序。
答
错误被扔在这条线:
var _id = db.bson_serializer.ObjectID.createFromHexString(req.params.id);
如果包装在try/catch块它应该工作。
var _id = null
try {
_id = db.bson_serializer.ObjectID.createFromHexString(req.params.id);
} catch (err) {
res.send(JSON.stringify({error: "Not found"}));
return;
}
this.db.users.findById(_id, function(err, doc) {
if (!err) {
res.send(JSON.stringify(doc));
} else {
res.send(JSON.stringify({error: err.message}));
}
});
这是否适合您?
我很确定我明白你想要什么,但是你能显示一个示例URI吗? – 2012-02-21 17:24:08
'/ users/nonvalidid' - 抛出错误。 '/ users/47cc67093475061e3d95369d' - 有效。 – Industrial 2012-02-21 17:26:09