玉鬼财产

时间:2013-03-03 18:26:44

标签: node.js pug

模板:

p= user

输出:

<p>{ admin: "true", human: "Foo Bar" }</p>

(在其他一些通常用户看不到的东西中,但用于渲染布局的不同部分(或不用)取决于各种因素)

模板:

p= user.human

输出:

<p>Foo Bar</p>

正如预期到目前为止。但是,模板:

p= user.admin

输出:

<p></p>

我不知道这是怎么回事。当我输出整个对象时,属性就在那里,但当我尝试输出该属性时,它就消失了。

我也尝试使用user['admin']代替user.admin,但这也不起作用。

第一个问题:这是怎么回事? 第二个问题:我该如何解决?

更新1:模式p #{user.admin}具有相同的效果,p= user.admin.toString()导致500错误声明'user.admin' is not defined。此外,JSON.stringify(user.admin)也会产生空p标记(如p= user.adminp #{user.admin}

更新2: p= JSON.stringify(user) 输出'admin'属性:{"admin":"true","human":"Foo Bar"}但是user用{{1}进行迭代输出'admin'属性。在这种情况下,输出非常长,因为它包含一堆函数和其他东西,但我使用ctrl + f来搜索输出,但找不到'admin'。

3 个答案:

答案 0 :(得分:1)

这可能是因为admin的值被解释为布尔值。有些事要尝试:

p #{user.admin}

p= user.admin.toString()

答案 1 :(得分:1)

请尝试以下

each value, key in user
    p #{value} [#{key}]

“管理员”输出了吗?

答案 2 :(得分:0)

好的,这是错的:

我正在检索一个设置了'admin'属性的Mongoose对象,但Schema实际上根本没有指定'admin'属性。我不确定Jade到底是怎么回事的,但是Mongoose显然对'admin'属性是什么以及如何处理它感到非常困惑。

解决方案是简单地将'admin':'string'添加到我的mongoose.Schema对象中。

感谢戴夫和朱利安国王的帮助。我已经提出了你的两个答案,因为他们确实帮助我得出了这个结论(以及你的评论,但你不会为那些我害怕的人得到代表!)。