#node.js #api #express #async-await
#node.js #API #выражать #асинхронный -ожидание
Вопрос:
У меня есть этот API для моего веб-сайта. То, что я хочу сделать, это отправить checklist_data
and data
как единый ответ от этой функции контроллера.
Как я могу этого добиться?
const getNumberOfApprovedCreators = (callback) => {
Pages.find({ status: "ACTIVE" })
.populate("user")
.exec(async (err, data) => {
if (err) return callback(err, 500, null);
else {
for await (page of data) {
let { err, status, checklist_data } = await checklistController.getActions(
page.user
);
}
return callback(null, 200, data);
}
});
};
Ответ №1:
Вы можете собрать все checklist_data
данные в массив, а затем поместить как эти, так и другие данные в объект и сделать объект тем, что вы отправляете обратно с контроллера:
const getNumberOfApprovedCreators = (callback) => {
Pages.find({ status: "ACTIVE" })
.populate("user")
.exec(async (err, data) => {
if (err) {
return callback(err, 500, null);
} else {
const checklist_results = [];
for await (page of data) {
let { err, status, checklist_data } = await checklistController.getActions(
page.user
);
if (err) return callback(err, 500, null);
checklist_results.push(checklist_data);
}
return callback(null, 200, {data, checklist_results});
}
});
};