Joh*_*yHK 32
您可以通过instanceof操作员检查对象的原型,以确认它是您的猫鼬模型的实例.使用mongoosejs.com中的示例模式:
if (obj instanceof Cat) {
// yes, it's a mongoose Cat model object
...
}
Run Code Online (Sandbox Code Playgroud)
mis*_*may 16
我正在使用它
if (object.constructor.name === 'model') {
// object is mongoose object
}
Run Code Online (Sandbox Code Playgroud)
我确定一个对象是否是 Mongoose 模型的首选方法几乎和上面一样简单,但不完全是:
function isModel(obj) {
obj = obj || {}
return obj.prototype instanceof mongoose.Model
}
Run Code Online (Sandbox Code Playgroud)
在我使用它的上下文中,我不想得到未定义的返回值,但确实需要验证我没有得到“3”或我期望模型的一些奇怪的值。
当然,在进一步考虑之后,有不止一种方法可以成为“猫鼬对象”。我有时将 DTO 误认为 Mongoose 模型,然后后来误用了它,因此我在上面进行了测试……做一些类似于 Lukasz 上面所做的事情并查看构造函数基础。