Не удается синхронизировать операцию mon goose для возврата массива - PullRequest
1 голос
/ 14 марта 2020

Как часть управления приложениями сотрудника, я хочу отделить операции базы данных бизнес-логики c от моего основного файла приложения. Самая простая операция - прочитать всех сотрудников из базы данных, используя async / await для синхронизации:

module.exports.getEmployees = async () => {
    const employees = await Employee.find();
    return employees;
}

в моем приложении. js Я набрал следующий код:

const employee = require(__dirname + "/models/employee.js");

app.get("/employees", (req, res) => {
    const employeeList =  employee.getEmployees();
    employeeList.then(res.send(employeeList));
})

но все же массив отображается пустым?

1 Ответ

0 голосов
/ 14 марта 2020

then предложение в обещании принимает функцию в качестве аргумента, и у этой функции есть параметр, который содержит фактический ответ.

Примерно так -

new Promise().then((response) => {
    console.log(response);
});

Вы делаете employeeList.then(res.send(employeeList));, что означает, что аргументом к предложению then является res.send(), который не будет работать.

Попробуйте это -

employeeList.then((list) => {
    // please note the response type here depends on the Content-Type set in the response Header
    res.send(list);
    // In case of normal http server, try this -
    res.send(JSON.stringify(list));
});

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...