node.js - 如果我尝试在父级迭代中迭代哈巴狗,则无法读取未定义的属性“长度”
问题描述
我想将一个对象列表从我的数据库传递到 pug 视图,但我在帖子底部收到了错误。这是我尝试的代码:
app.js 这是获取对象并将它们放入列表的函数。另外还有带有函数调用的路由来获取列表。
//...
function getEntryList(db) {
connection.query(connection.format('SELECT name FROM ??', [db]), (err, result, fields) => {
if (err || !result) {
utils.log(`[MySQL] ${err}`);
return Array();
}
list = Array();
Object.keys(result).forEach(key => {
row = result[key];
entry = {title: row.name, url: `/${db}/${row.id}`};
list.push(entry);
});
return list;
});
}
//...
app.get('/employees', localSession, (req, res) => {
list = getEntryList('employees');
res.render('employees', {title: 'Employees', list: list});
});
//...
content_with_list.pug 这个视图是错误发生的地方。
extends layout
block content
.content-info
block content_info
.content-list.navigation
nav
ul
each entry in list
li
a(href=entry.url)= entry.title
else
li No employees found!
employees.pug 此视图从有错误的视图扩展而来。
extends content_with_list
block content_info
if result
table
tr
td(rowspan='7' style='vertical-align: top;')
div
img(src="#{result.image}")
p Level
span(style={color: secLevel.color})= secLevel.secName
td Name:
td
tr
td MC-Username:
td
tr
td Address:
td
tr
td Nationality:
td
tr
td Species:
td
tr
td Gender:
td
tr
td Job:
td
tr
td
td Projects:
td
我收到此错误:
TypeError: project\views\content_with_list.pug:9
7| nav
8| ul
> 9| each entry in list
10| li
11| a(href=entry.url)= entry.title
12| else
Cannot read property 'length' of undefined
at eval (eval at wrap (project\node_modules\pug-runtime\wrap.js:6:10), <anonymous>:163:32)
at eval (eval at wrap (project\node_modules\pug-runtime\wrap.js:6:10), <anonymous>:203:4)
at template (eval at wrap (project\node_modules\pug-runtime\wrap.js:6:10), <anonymous>:295:7)
at Object.exports.renderFile (project\node_modules\pug\lib\index.js:454:38)
at Object.exports.renderFile (project\node_modules\pug\lib\index.js:444:21)
at View.exports.__express [as engine] (project\node_modules\pug\lib\index.js:493:11)
at View.render (project\node_modules\express\lib\view.js:135:8)
at tryRender (project\node_modules\express\lib\application.js:640:10)
at Function.render (project\node_modules\express\lib\application.js:592:3)
at ServerResponse.render (project\node_modules\express\lib\response.js:1012:7)
解决方案
推荐阅读
- powershell - 如何检查命令的输出是否包含“错误”?
- oozie - 有人可以告诉我为什么跟随 Oozie 协调员循环运行吗
- python-3.x - 如何将列表中的所有数字更改为具有相同数量的数字 - Python
- swift - 如何将韩语单词拆分为其组成部分?
- sql - 如何将查询转换为 HQL?
- rebus - 向 Rebus 注册 IErrorHandler 时出错
- java - 在 Android 中使用 HttpPost 发送承载令牌
- ruby-on-rails - 如何使用 Rails 6/Zeitwerk 在 Rails 初始化程序中预加载关注点?
- javascript - 如何将唯一的 id 添加到 first of kind
- java - 连接到加密交换 API。使用“POST”或“DELETE”方法“签名并发送”消息时出错?