Javascript 为什么我会得到一个“;无法读取属性';长度';“未定义”的定义;在pug模板中迭代时出错?

Javascript 为什么我会得到一个“;无法读取属性';长度';“未定义”的定义;在pug模板中迭代时出错?,javascript,node.js,express,pug,Javascript,Node.js,Express,Pug,我正在用Node和Express构建一些东西,如果用户没有登录,那么主页应该在导航栏中显示注册和登录链接。一切看起来都应该正常工作,如果不迭代,我可以显示信息。但是当我使用迭代时,我得到了这个错误: /home/michael/Desktop/budget-app/views/layout.pug:13 11| a(href='/') Simple Money Manager 12| if authLinks > 13| each val, index in authlinks 14| a

我正在用Node和Express构建一些东西,如果用户没有登录,那么主页应该在导航栏中显示注册和登录链接。一切看起来都应该正常工作,如果不迭代,我可以显示信息。但是当我使用迭代时,我得到了这个错误:

/home/michael/Desktop/budget-app/views/layout.pug:13 11| a(href='/') Simple Money Manager 12| if authLinks > 13| each val, index in authlinks 14| a(href='' + val) index 15| 16| // Content Cannot read property 'length' of undefined
以下是
渲染
方法:

res.render('home'{
授权链接:{
注册:“/Signup”,
登录名:“/Login”
}
});
以下是我的pug文件中使用的代码:

if-authLinks
每个val、AuthLink中的索引
a(href=''+val)索引

为什么authLinks没有定义?我完全不知所措。谢谢您的帮助。

它应该是循环中的
authLinks
而不是
authLinks

if authLinks
    each val, index in authLinks//here 
      a(href='' + val) index  
编辑:您的authLinks是一个对象,不是数组,不能重复:

res.render('home', {
   authLinks: [{
      Signup: "/signup",
      Login: "/login"
   }]
});

我不知道你在说什么。你的回答也有同样的错误,似乎和我做的事情一样。@MichaelAlexander不是;检查你的2号线和他们的2号线。