簡體   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