【发布时间】:2012-04-16 06:26:59
【问题描述】:
遇到最奇怪的问题。我无法显示对象的email 属性。我正在使用 Mongoose/Express/Jade。我正在做一个:
User.find({ _id : { $in : req.project.subscribers } } , function (err, subs){...
效果很好,并在 subs var 中返回我的订阅者列表,如下所示:
{ _id: 4f34832b9398bec847000002,
email: 'steve@example.com',
first_name: 'Steve',
last_name: 'McQueen',
status: 'active',
username: 'steve',
updated_at: Fri, 10 Feb 2012 02:38:35 GMT,
created_at: Fri, 10 Feb 2012 02:38:35 GMT,
role: 'subscriber' },
{ _id: 4f3484a9eceb82b548000002,
email: 'paul@example.com',
first_name: 'Paul',
last_name: 'Stanley',
status: 'active',
username: 'paul',
updated_at: Mon, 02 Apr 2012 15:09:56 GMT,
created_at: Mon, 02 Apr 2012 15:09:56 GMT,
role: 'subscriber' }
然后我将它传递给我的翡翠视图中的一个名为订阅者的变量。
到目前为止一切顺利,当我在我的翡翠模板中迭代 subscribers 时,我想显示每个订阅者的 email 属性时出现了问题。出于某种原因,这只是email 的问题! email 没有显示任何内容,只是空白。
ul
each sub in subscribers
li= sub.email
如果我用任何其他属性代替email,它就可以正常工作。因此,以下显示完全正常:
ul
each sub in subscribers
li= sub.username
如果我能提供更多细节,请告诉我。
为 Declan 编辑:
执行以下操作:
ul
each val, key in subscribers
li #{key}: #{val}
产量:
0: { _id: 4f34832b9398bec847000002, email: 'foo', first_name: 'Steve', last_name:
'McQueen', status: 'active', username: 'steve', updated_at: Fri, 10 Feb 2012 02:38:35 GMT,
created_at: Fri, 10 Feb 2012 02:38:35 GMT, role: 'subscriber' }
1: { _id: 4f3484a9eceb82b548000002, email: 'foo', first_name: 'Paul', last_name: 'Stanley',
status: 'active', username: 'paul', updated_at: Mon, 02 Apr 2012 16:05:51 GMT, created_at:
Mon, 02 Apr 2012 16:05:51 GMT, role: 'subscriber' }
【问题讨论】:
-
如果只是为了测试,你在你的控制器中添加循环并尝试 console.log 其中的每个子,它显示了什么?你的财产在里面吗?
-
是的,它正在显示,这就是我复制和粘贴整个对象的地方。
-
我想知道翡翠是否对电子邮件中的特殊字符有问题。您是否尝试过删除 @ 和 .并测试它们是否导致了问题?
-
@DeclanCook 好主意,但不行。我将所有电子邮件帐户值设置为 foo,但问题仍然存在。
-
很奇怪,你是否厌倦了使用符号:每个 val,key in obj li #{key}: #{val}
标签: javascript node.js express mongoose pug