繁体   English   中英

使用节点 js 创建 Mongodb ObjectId 时如何捕获错误

[英]How do I catch error when creating a Mongodb ObjectId using node js

var criteria = Mongoose.Types.ObjectId(payloadData.skillId) ,

当我传递不正确的Id时,会出现以下错误消息。

错误:未捕获的错误:传入的参数必须是 12 个字节的单个字符串或 24 个十六进制字符的字符串

mongo _id是12字节BSON类型的ObjectId

var mongoose = require('mongoose');

var id = '1111adda111';
// var id = payloadData.skillId;

console.log(mongoose.Types.ObjectId.isValid(id)); // false
var cond = mongoose.Types.ObjectId.isValid(id)

if (cond) {
    // do the required operation
} else {
    console.log('not a valid id');
}

将不正确的 Mongo _id传递给Mongoose.Types.ObjectId()构造函数会引发BSONTypeError ,该错误可以在 try catch 块中捕获。

import { BSONTypeError } from 'bson';

try {
    const id = Mongoose.Types.ObjectId('xyz');
}
catch {
    if (e instanceof BSONTypeError) {
        console.log('id is invalid');
    }
    else console.log('some other error');
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM