我正在尝试从表(在postgreSQL -pgadmin中定义)中获取特定数据,并使用把手在视图内呈现数据。 employeeNumber路由正在调用getEmployeeByNum函数,应该使用数据解析并使用“员工”视图呈现。
我能够在其他视图中呈现表中的数据,并且所有函数都可以正确解析,所以我不确定问题出在哪里。
server.js
app.get("/employee/:empNum", (req, res) => {
// initialize an empty object to store the values
let viewData = {};
dataService.getEmployeeByNum(req.params.empNum)
.then((data) => {
viewData.data = data; //store employee data in the "viewData" object as "data"
}).catch(()=>{
viewData.data = null; // set employee to null if there was an error
}).then(dataService.getDepartments)
.then((data) => {
viewData.departments = data; // store department data in the "viewData" object as "departments"
// loop through viewData.departments and once we have found the departmentId that matches
// the employee's "department" value, add a "selected" property to the matching
// viewData.departments object
for (let i = 0; i < viewData.departments.length; i++) {
if (viewData.departments[i].departmentId == viewData.data.department) {
viewData.departments[i].selected = true;
}
}
}).catch(()=>{
viewData.departments=[]; // set departments to empty if there was an error
}).then(()=>{
if(viewData.data == null){ // if no employee - return an error
res.status(404).send("Employee Not Found");
}else{
res.render("employee", { viewData: viewData }); // render the "employee" view
}
});
});
data-service.js
module.exports.getEmployeeByNum = (empNum) => {
return new Promise(function (resolve, reject) {
Employee.findAll({
where: {
employeeNum: empNum
}
})
.then(data => resolve(data[0]))
.catch(err => reject("No Results Returned"))
});
}
employee.hbs-部分
div class="row">
<div class="col-md-12">
<h2>{{viewData.employee.firstName}} {{viewData.employee.lastName}} - Employee: {{ viewData.employee.employeeNum}}</h2>
<hr />
<form method="post" action="/employee/update">
<input type="hidden" name="employeeNum" value="{{viewData.employee.employeeNum}}" />
<fieldset>