2016-11-28 72 views
0

编辑:我想创建一个创建表的第一行,表格的第一行是静态的(即一些标题),我想要的每个后续行添加一名员工。我有3个文件express.js(handels请求我的应用程序)employee.js和index.pug。
以下是我在employee.jsPug-Jade模板访问模块数据

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 

我希望它现在更清晰。

+0

你已经改变了你的帕格代码。它曾经是'td = val.id',现在你已经有'td = employeesList.id'这肯定不会工作。 – Soviut

+0

已修复,那是一个类型错误 –

+0

您可以添加一个'employees.js'文件的样子吗?你的错误说'employees'是'undefined',这意味着它不能正确导入。 – Soviut

回答

0

您的employees变量是undefined

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

+0

对不起,我错过了写,现在我编辑了这个问题。 –

+0

@FilippoBosco我已更新我的回答,以反映对您问题所做的更改。 – Soviut

+0

因此,即使现在,在学习我正在访问的内容之后,它会抛出相同的错误!任何线索? –

0

一旦你处理了上述建议...

我来到这里,由具有类似的问题,什么工作对我来说就已经是这样的:

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

注:我我正在使用帕格3.10.6