gpt4 book ai didi

node.js - 为什么 Mocha 断言在 mongoose.Schema.objectId 上失败?

转载 作者:可可西里 更新时间:2023-11-01 09:08:03 24 4
gpt4 key购买 nike

我在 mocha 的某个地方声明为:

assert.equal(model.organizationId,objId);

但我得到失败的 mocha 结果:

Uncaught AssertionError: "5225777180a843d901000012" == "5225777180a843d901000012"

为什么会发生,当 ID 相同时。

如何克服它?

最佳答案

所以在这方面,javascript 中的 mongodb ObjectIds 令人沮丧。它们是不同的对象,导致 obj1 === obj2 评估为 false,即使它们表示的值相同。有 3 个选项:

  1. 在比较之前转换为字符串。我经常使用它,否则它会令人沮丧。

  2. 使用他们提供的.equals()方法:assert.ok(model.organizationId.equals(objId))

  3. 编写一个自定义比较函数,它可以接受 null、ObjectId 或 String 并做正确的事情(我也这样做过)

关于node.js - 为什么 Mocha 断言在 mongoose.Schema.objectId 上失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18584992/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com