首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >子图书id dMBTck6CaSupWbEna TypeError的异常:无法读取属性null的“电子邮件”

子图书id dMBTck6CaSupWbEna TypeError的异常:无法读取属性null的“电子邮件”
EN

Stack Overflow用户
提问于 2017-12-06 02:00:49
回答 1查看 206关注 0票数 0

每当用户登录到他的帐户时,我都会得到一个异常,在刷新页面之前,我无法看到收集数据。…**但如果我像这样使用它,我不会得到任何例外。

代码语言:javascript
复制
Books.find({“customer_name”:this.userId);

而不是

代码语言:javascript
复制
Books.find({“customer_name”:Meteor.user().emails[0].address);

我不需要这个步骤,因为在我的应用程序中,用户的集合查找应该基于他们的电子邮件id,而不是用户id…]**我的代码如下所示:有人,请帮助我out:frowning_face:

服务器- main.js:

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

客户端-main.js:

代码语言:javascript
复制
Template.viewBooks.helpers({
books() {
return Books.find({}, { sort: { books_order: -1 } }).fetch();
},
});

client - main.html

代码语言:javascript
复制
{{#each books}}
{{books_id}} 
{{/each}}

错误:

应用程序运行于:http://localhost:3000/ I 20171205-16:06:49.773(5.5)?异常从子事务id wQ9DpjjABEiPzMZ9P TypeError:无法读取属性‘电子邮件’为空I20171205-16:06:49.872(5.5)?在Subscription._handler (server/main.js:16:75) I20171205-16:06:49.873(5.5)?在(packages/ddp-server/livedata_server.js:1768:12) I 20171205-16:06:49.873(5.5)?在(packages/ddp-server/livedata_server.js:1043:15) I 20171205-16:06:49.873(5.5)?在Meteor.EnvironmentVariable.EVp.withValue (包裹/陨石:1134:15)I 20171205-16:06:49.873(5.5)?在(packages/ddp-server/livedata_server.js:1041:51) I 20171205-16:06:49.873(5.5)?在包/ddp-server/livedata_server.js:826:41 I20171205-16:06:49.874(5.5)?在Function..each..forEach (软件包/底盘:147:22) I20171205-16:06:49.874(5.5)?在包/ddp-server/livedata_server.js:822:9 I20171205-16:06:49.874(5.5)?在Meteor.EnvironmentVariable.EVp.withValue (包裹/陨石:1134:15)I 20171205-16:06:49.874(5.5)?在(packages/ddp-server/livedata_server.js:816:34) Session._setUserId

EN

回答 1

Stack Overflow用户

发布于 2017-12-06 05:31:54

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

代码语言:javascript
复制
var currentUser = Meteor.users.findOne(this.userId);
var userEmail = currentUser.emails[0].address;

然后在Books.find中使用它

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47665654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档