Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 创建ObjectId时如何捕捉错误_Node.js_Mongoose - Fatal编程技术网

Node.js 创建ObjectId时如何捕捉错误

Node.js 创建ObjectId时如何捕捉错误,node.js,mongoose,Node.js,Mongoose,我试图在node.js应用程序中通过路由中的参数创建一个带有mongoose的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

我试图在node.js应用程序中通过路由中的参数创建一个带有mongoose的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);
}
可能重复的