Meteor.js:当参数是Mongodb ObjectId时,如何运行check()?

前端之家收集整理的这篇文章主要介绍了Meteor.js:当参数是Mongodb ObjectId时,如何运行check()?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在我的一些Meteor方法中,我将 Mongodb ObjectId从客户端发送为参数.我想通过Meteor的check()系统运行这些,但我似乎找不到与它们成功匹配的任何东西.

我试过了

var someObjectId = Meteor.Collection.ObjectId();

check(someObjectId,Meteor.Collection.ObjectId()) // fails
check(someObjectId,{ _str : String }) //fails
check(someObjectId,String) //fails

任何帮助非常感谢!

解决方法

代替:
check(someObjectId,Meteor.Collection.ObjectID());

试试没有括号:

check(someObjectId,Meteor.Collection.ObjectID);

编辑-

请注意,此检查的错误消息不理想.

check({},Meteor.Collection.ObjectID);
// Error: Match error: Expected

你可以假设消息应该是这样的

// Error: Match error: Expected ObjectId,got object

您可以看到为什么这种情况发生在此片段中的检查包中.

https://github.com/meteor/meteor/blob/devel/packages/check/match.js

if (pattern instanceof Function) {
    if (value instanceof pattern)
        return;
    // XXX what if .name isn't defined
    throw new Match.Error("Expected " + pattern.name);
}

Meteor.Collection.ObjectID没有名称属性.

猜你在找的JavaScript相关文章