使用把手发布渲染视图数据

时间:2019-04-02 15:09:03

标签: node.js handlebars.js

我正在尝试从表(在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>

0 个答案:

没有答案