8

限られた量のデータのみをクライアントに公開したい。

私はこのようにそれをやろうとしました:

# server
Meteor.publish('users', ->
  Meteor.users.find({},
    fields:
      services: 0
  )
)

ただし、クライアントは引き続きオブジェクト全体を受け取ります。

# client
Meteor.startup( ->
  Meteor.subscribe('users')
)

# ... 
# in another function
Meteor.users.find().observe( ->
  changed: (updated) ->
    console.log updated
)

私は何を間違っていますか?

4

2 に答える 2

5
Meteor.publish '', ->
    Posts.find({}, { fields: { title: 1, content: true, secret: false } });

それらの{}を追加するのはどうですか

于 2012-10-09T11:57:49.727 に答える
4

以下のコードは私にとってはうまくいきます(coffeescript)。pwdフィールドは公開されていません。

サーバ

Meteor.publish "users", (userId) ->
  user = Users.find userId,
    fields:
      pwd: false

  return user

クライアント

Meteor.autosubscribe ->
    userId = Session.get SESSION_USER

    Meteor.subscribe 'users', userId

私が見る唯一の違いは

  • 0vs false... (好みの問題です)
  • あなたのコレクションは経由でアクセスされますMeteor
  • クライアントではautosubscribe、メソッドを使用している間、サブスクリプションがコールバック内に配置されますobserve

Meteor.users.find().fetch()フィールドはブラウザ コンソールの結果にも存在しますか?

于 2012-10-09T08:56:42.170 に答える