开发者问题收集

Pug-Jade 模板访问模块数据

2016-11-28
504

编辑:我正在尝试创建一个 pug-jade 模板,在其中创建一个表,表的第一行是静态的(即一些标题),对于每个后续行,我想添加一名员工。我有 3 个文件 express.js(处理对我的应用程序的请求)employee.js 和 index.pug。
这是我在 employee.js 中导出的内容

function Employee (id,name,surname,lvl,salary){
this.id = id;
this.name = name;}
exports.employees = {
employeeList: [],
//the empList is a list of employee defined above, class contains some other methods   
}  

在 express.js 中我调用:

var employees = require('./employees')

在请求处理程序中我调用:

res.render('index',{employees: employees})

最后在 index.pug 中我尝试:

tbody
    for val in employees.employeeList
        td=val.id
        td=val.name   

这是错误:

TypeError: /Users/filippobosco/Desktop/GitHubRepos/IngSoftware2/Employees/ExpressTutorial/views/index.pug:39   

  37| th Salary
  38| tbody
> 39| for val in employees.employeeList
  40| td=val.id
  41| td=val.name
  42| 

  Cannot read property 'length' of undefined

我希望现在更清楚了。

2个回答

您的 employees 变量 未定义

这意味着您的 require('employees') 导入存在问题。由于无法查看 employees.js 文件,我只能猜测您的 exports 设置不正确。

Soviut
2016-11-28

处理完上述建议后...

我遇到过类似的问题,对我有用的方法是这样的:

tbody
for val in employees.employeeList
    td #{val.id}
    td #{val.name}  

注意:我使用的是 pug 3.10.6

daansteraan
2017-04-24