node.js - 玉模板引擎中的for循环
问题描述
我在翡翠模板引擎中使用一个简单的循环来列出我的所有员工。这是我的代码。
extends ../layout/main
block content
style(type='text/css').
.container.createEmployee {
float: left;
float: right;
width: 80%;
margin-top: 40px;
body
.container.createEmployee
h3
a(href='/employees/create') Create Employee
h1 Employee List
if employee.length > 0
for(var i=0 i<employee.length i++)
table.table.table-striped
thead
tr
th No#
th Employee Name
th Position
tbody
tr
td
a(href='/employees/show/ #{employee[i]._id}') #{employee[i].name}
//- td 1
//- td Moaiz pervaiz
td #{employee[i].position}
//- td Software Developer
div No employees found.
但它向我显示了错误:
无法读取未定义的属性“长度”
我不明白为什么会出现这个错误,请检查我的if
条件和for
循环。我使用它是否正确。请帮我。提前致谢。
这是我的控制器代码:
var mongoose = require("mongoose");
var Employee = require("../models/employee");
var employeeController = {};
employeeController.list = function(req, res) {
Employee.find({}).exec(function (err, employees) {
if (err) {
console.log("Error:", err);
}
else {
res.render("../views/employees/index", {employees: employees});
}
});
};
employeeController.show = function(req, res) {
Employee.findOne({_id: req.params.id}).exec(function (err, employee) {
if (err) {
console.log("Error:", err);
}
else {
res.render("../views/employees/show", {employee: employee});
}
});
};
employeeController.create = function(req, res) {
res.render("../views/employees/create");
};
employeeController.save = function(req, res) {
var employee = new Employee(req.body);
employee.save(function(err) {
if(err) {
console.log(err);
res.render("../views/employees/create");
} else {
console.log("Successfully created an employee.");
res.redirect("/employees/show/"+employee._id);
}
});
};
employeeController.edit = function(req, res) {
Employee.findOne({_id: req.params.id}).exec(function (err, employee) {
if (err) {
console.log("Error:", err);
}
else {
res.render("../views/employees/edit", {employee: employee});
}
});
};
employeeController.update = function(req, res) {
Employee.findByIdAndUpdate(req.params.id, { $set: { name: req.body.name, address: req.body.address, position: req.body.position, salary: req.body.salary }}, { new: true }, function (err, employee) {
if (err) {
console.log(err);
res.render("../views/employees/edit", {employee: req.body});
}
res.redirect("/employees/show/"+employee._id);
});
};
employeeController.delete = function(req, res) {
Employee.remove({_id: req.params.id}, function(err) {
if(err) {
console.log(err);
}
else {
console.log("Employee deleted!");
res.redirect("/employees");
}
});
};
module.exports = employeeController;
解决方案
推荐阅读
- javascript - 使用 lodash 或 es6 编写一个函数,该函数接受具有深度嵌套属性的对象并返回一个仅具有选择属性的新对象
- liferay - 无法在 Liferay 7.2 中呈现自定义表单字段
- vaadin - Vaadin 对话框以编程方式调整大小
- android - 下载unity bin.Data assets
- postgresql - 关系数据库设计以表示同一表的行之间的相似性
- c# - Unity C#:渲染一组精灵?
- kframework - 我们如何使用 --pdf 标志来生成文档?
- javascript - 在特定范围值上隐藏标签
- amazon-elastic-beanstalk - ASP Net Core IdentityServer,生产环境中的“发行者无效”
- python - 改变 seaborn 散点图中不同数据的图例属性