2

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 以外のすべてのスキーマ フィールドを削除しようとしましたが、それでも機能しませんでした。

4

3 に答える 3

7

注意 - を使用している場合にこれを解決するには、そのパッケージがユーザー ドキュメントにフィールドをmizzao:user-status追加できるようにする必要があります。status

Schema.User = new SimpleSchema(
  ...
  status: {
    type: Object,
    optional: true,
    blackbox: true
  }
});
于 2014-12-30T17:01:27.553 に答える
1

私はまったく同じ問題を抱えていました。ひょっとして、mizzao:user-status パッケージをお使いですか?ユーザー接続を追跡するための追加フィールドを挿入します。https://github.com/mizzao/meteor-user-status

アカウントをセットアップする前に Meteor.users ドキュメントにフィールドを追加する追加パッケージは、この問題を引き起こす可能性があります。具体的には、サインオンすると、接続フィールドのみを持つ空白のユーザー オブジェクトが作成されますが、これは明らかにスキーマで許可されていません。

于 2014-12-07T11:18:31.630 に答える
0

Users はデフォルトの Meteor コレクションであるため、保存したいプロパティが許可されていない可能性があります。

RoboMongo または別のツールを使用してデータベースを調べ、すべてのプロパティが含まれていることを確認します。

于 2014-09-11T16:09:03.530 に答える