Добавление ответов от разных API

#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});
        }
    });
};