在我的一些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
Run Code Online (Sandbox Code Playgroud)
任何帮助非常感谢!
sbk*_*ing 10
代替:
check(someObjectId, Meteor.Collection.ObjectID());
Run Code Online (Sandbox Code Playgroud)
试试没有括号:
check(someObjectId, Meteor.Collection.ObjectID);
Run Code Online (Sandbox Code Playgroud)
编辑-
请注意,此检查的错误消息并不理想.
check({}, Meteor.Collection.ObjectID);
// Error: Match error: Expected
Run Code Online (Sandbox Code Playgroud)
你可以假设消息应该是这样的
// Error: Match error: Expected ObjectId, got object
Run Code Online (Sandbox Code Playgroud)
您可以在check包的此片段中看到为什么会发生这种情况.
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);
}
Run Code Online (Sandbox Code Playgroud)
Meteor.Collection.ObjectID没有name财产.
| 归档时间: |
|
| 查看次数: |
8060 次 |
| 最近记录: |