我刚刚将Meteor collection2添加到我的应用中。在服务器文件夹的文件中,我添加了代码:
Schema = {}
Schema.User = new SimpleSchema(
_id:
type: String
regEx: SimpleSchema.RegEx.Id
username:
type: String
regEx: /^[a-z0-9A-Z_]{3,15}$/
emails:
type: [Object]
optional: true
"emails.$.address":
type: String
regEx: SimpleSchema.RegEx.Email
"emails.$.verified":
type: Boolean
createdAt:
type: Date
)
Meteor.users.attachSchema Schema.User
它正在崩溃我的应用程序错误:
W20140907-02:06:32.777(-4)? (STDERR) /Users/Nearpoint/.meteor/packages/meteor-tool/.1.0.25.2ltu8i++os.osx.x86_64+web.browser+web.cordova/meteor-tool-os.osx.x86_64/dev_bundle/lib/node_modules/fibers/future.js:173
W20140907-02:06:32.777(-4)? (STDERR) throw(ex);
W20140907-02:06:32.777(-4)? (STDERR) ^
W20140907-02:06:32.792(-4)? (STDERR) Error: undefined is not allowed by the schema
W20140907-02:06:32.792(-4)? (STDERR) at getErrorObject (packages/aldeed:collection2/collection2.js:489)
W20140907-02:06:32.792(-4)? (STDERR) at doValidate (packages/aldeed:collection2/collection2.js:472)
W20140907-02:06:32.792(-4)? (STDERR) at Meteor.Collection.(anonymous function) [as update] (packages/aldeed:collection2/collection2.js:282)
W20140907-02:06:32.792(-4)? (STDERR) at UserConnections.upsert.$set.ipAddr (packages/mizzao:user-status/status.coffee:94:15)
我正在运行Meteor 0.9.0。我在服务器上附加架构代码。我不知道我做错了什么。我甚至尝试删除除_id之外的所有架构字段,但它仍然无效。
答案 0 :(得分:7)
注意 - 要解决此问题,如果您正在使用mizzao:user-status
,则只需要允许该软件包向您的用户doc添加status
字段:
Schema.User = new SimpleSchema(
...
status: {
type: Object,
optional: true,
blackbox: true
}
});
答案 1 :(得分:1)
我遇到了完全相同的问题。你有没有机会使用mizzao:user-status软件包?它会插入一个额外的字段来跟踪用户连接。 https://github.com/mizzao/meteor-user-status
在您设置帐户之前向Meteor.users文档添加字段的任何其他包可能会导致此问题。具体来说,当您登录时,它将创建一个仅包含连接字段的空白用户对象,这显然是您的架构所不允许的。
答案 2 :(得分:0)
由于用户是默认的Meteor集合,因此它可能是您想要保存的属性,而您不允许这样做。
我会使用RoboMongo或其他工具查看数据库,并确保包含所有属性。