来自子书ID的异常dMBTck6CaSupWbEna TypeError:无法读取null

时间:2017-12-06 02:00:50

标签: meteor

每当用户登录到他的帐户时我都会收到异常,并且在页面刷新之前我无法看到收集数据... ** [但是如果我使用它就没有任何异常

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

而不是

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

我不需要这一步,因为在我的应用中,用户收集查找应该基于他们的电子邮件ID,而不是基于userId ...] ** 我的代码如下所示: 有人,请帮帮我:frowning_face:

server - main.js:

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

client -main.js:

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

client - main.html

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

ERROR:

  

应用程序运行于:http://localhost:3000/ I20171205-16:06:49.773(5.5)?   来自子事务的异常id wQ9DpjjABEiPzMZ9P TypeError:不能   读取属性'电子邮件'的null I20171205-16:06:49.872(5.5)?在   Subscription._handler(server / main.js:16:75)   I20171205-16:06:49.873(5.5)?在maybeAuditArgumentChecks   (包/ DDP-服务器/ livedata_server.js:1768:12)   I20171205-16:06:49.873(5.5)?在   DDP.CurrentPublicationInvocation.withValue   (包/ DDP-服务器/ livedata_server.js:1043:15)   I20171205-16:06:49.873(5.5)?在   Meteor.EnvironmentVariable.EVp.withValue(packages / meteor.js:1134:15)   I20171205-16:06:49.873(5.5)?在Subscription.runHandler   (包/ DDP-服务器/ livedata_server.js:1041:51)   I20171205-16:06:49.873(5.5)?在   包/ D​​DP-服务器/ livedata_server.js:826:41   I20171205-16:06:49.874(5.5)?在Function..each..forEach   (packages / underscore.js:147:22)I20171205-16:06:49.874(5.5)?在   包/ D​​DP-服务器/ livedata_server.js:822:9   I20171205-16:06:49.874(5.5)?在   Meteor.EnvironmentVariable.EVp.withValue(packages / meteor.js:1134:15)   I20171205-16:06:49.874(5.5)?在Session._setUserId   (包/ DDP-服务器/ livedata_server.js:816:34)

1 个答案:

答案 0 :(得分:0)

在服务器上使用Meteor.user()通常是不好的做法。如果您没有足够的信息来发布和订阅您的馆藏,并且因为您说使用this.userId时没有收到任何错误,您可以通过以下方式找到电子邮件地址:

var currentUser = Meteor.users.findOne(this.userId);
var userEmail = currentUser.emails[0].address;

然后在Books.find

中使用它

如果您可以提供有关订阅和发布的更多信息,我将能够提供更多帮助