2017-12-06 19 views
0

ユーザーが自分のアカウントにログインするたびに例外が発生し、ページが更新されるまでコレクションデータが表示されません。** [私はサブブックからの例外ID dMBTck6CaSupWbEna TypeError:ヌルのプロパティ 'emails'を読み取ることができません

Books.find({“customer_name”:this.userId); 

代わりの

Books.find({“customer_name”:Meteor.user().emails[0].address); 

ようにそれを使用して、私のアプリのユーザーにコレクションの所見は彼らの電子メールIDに基づくべきであるので、私はそのステップを必要としない場合、私は例外を取得しておりません、userIdではなく] ** 私のコードは以下の通りです: 誰かが、私を助けてください:frowning_face:

サーバー - main.js:

var My_collection; 
Meteor.publish(‘books’, function() { 
My_collection = 
Books.find({“customer_name”:Meteor.user().emails[0].address); 
return My_collection; 

クライアント-main.js:

Template.viewBooks.helpers({ 
books() { 
return Books.find({}, { sort: { books_order: -1 } }).fetch(); 
}, 
}); 

クライアント - main.htmlを

{{#each books}} 
{{books_id}} 
{{/each}} 

エラー:

App running at: http://localhost:3000/ I20171205-16:06:49.773(5.5)? Exception from sub transactions id wQ9DpjjABEiPzMZ9P TypeError: Cannot read property ‘emails’ of null I20171205-16:06:49.872(5.5)? at Subscription._handler (server/main.js:16:75) I20171205-16:06:49.873(5.5)? at maybeAuditArgumentChecks (packages/ddp-server/livedata_server.js:1768:12) I20171205-16:06:49.873(5.5)? at DDP.CurrentPublicationInvocation.withValue (packages/ddp-server/livedata_server.js:1043:15) I20171205-16:06:49.873(5.5)? at Meteor.EnvironmentVariable.EVp.withValue (packages/meteor.js:1134:15) I20171205-16:06:49.873(5.5)? at Subscription.runHandler (packages/ddp-server/livedata_server.js:1041:51) I20171205-16:06:49.873(5.5)? at packages/ddp-server/livedata_server.js:826:41 I20171205-16:06:49.874(5.5)? at Function..each..forEach (packages/underscore.js:147:22) I20171205-16:06:49.874(5.5)? at packages/ddp-server/livedata_server.js:822:9 I20171205-16:06:49.874(5.5)? at Meteor.EnvironmentVariable.EVp.withValue (packages/meteor.js:1134:15) I20171205-16:06:49.874(5.5)? at Session._setUserId (packages/ddp-server/livedata_server.js:816:34)

答えて

0

一般的に、Meteor.user()はサーバー上で使用することをお勧めしません。あなたのコレクションをどのように公開し購読しているかに関する十分な情報がなく、this.userIdの使用時にエラーが発生していないと言っているので、次のように電子メールアドレスを見つけることができます:

は続いて申し訳ありませんが、それはトリックをしなかったサブスクリプションおよび出版物に関する詳細な情報を提供できる場合、私は」

+0

より多くのを助けることができるだろうBooks.find

でそれを使用しています。あなたが解決策を見つけたいのであれば、正しいフィードバックではありません。あなたは、私が何をすべきかを知るためにセットアップを十分に共有していません。サブスクリプション/出版物をどうやって手渡していますか?私はあなたのために、[チュートリアル](https://www.meteor.com/tutorials)と[guide](https://guide.meteor.com)を見て、ベストプラクティスに従っています。 – sdybskiy

関連する問題