我试图从路由中的参数在我的node.js应用程序中用猫鼬创建一个ObjectId。
如果我有这条路线:
/product/:id
我尝试创建我的ObjectId来查询产品集合,我使用了这个
var o_id = moongose.Types.ObjectId(req.params.id);
但是,如果路由的:id部分不是ObjectId字符串,则只是一些随机文本,我会得到一个错误:
"Argument passed in must be a single String of 12 bytes or a string of 24 hex characters"
如何捕获此错误?我尝试用try {} catch(error){}包围o_id = moongose.Types.ObjectId(req.params.id),但是catch表达式中什么也没得到。
最好的方法是使用正则表达式来测试您的表情:
if(/[a-f0-9]{24}/.test(req.params.id)) {
var o_id = moongose.Types.ObjectId(req.params.id);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句