Nodejs | Обмен данными между контроллерами - PullRequest
0 голосов
/ 25 марта 2020

У меня есть мой PlantsController, где я получаю растения, как это:

function getAll() {
  const plants= HttpRequestPromise.get(config.ApiURL+'allPlants', config.head);
  return plants;
}

export class PlantsController {
  ...
  public getPlants() {
    return async (req: Request, res: Response, next?: NextFunction): Promise<Response> => {
      try {
        const plants = await getAll();
        return res
          .status(OK)
          .send(plants);
      } catch (e) {
        next(e);
      }
    };
  }
  ...
}
export default new PlantsController();

У меня есть PlantedActivitiesController, где я получаю PlantedActivities, как это:

import plantsController from '../plants/plants.controller';
export class PlantedActivitiesController {
  ...
  public getPlantedActivities(){
    return async (req: Request, res: Response, next?: NextFunction): Promise<Response> => {
      try {


        var plants = ?  // How can i get the plants from PlantsController?
                        // plantsController.get...?

        ...


      } catch (e) {
        next(e);
      }
    };
  }
  ...
}

Итак, как мне доставить растения в мой PlantedActivitiesController?

1 Ответ

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

Нашел его:

Я создал getPlantsHelper следующим образом:

function getAll() {
  const plants= HttpRequestPromise.get(config.ApiURL+'allPlants', config.head);
  return plants;
}
export class PlantsController {
  ...

  //-----------
  public getPlantsHelper(){
    return getAll()
  }
  //-----------

  public getPlants() {
    return async (req: Request, res: Response, next?: NextFunction): Promise<Response> => {
      try {
        const plants = await getAll();
        return res
          .status(OK)
          .send(plants);
      } catch (e) {
        next(e);
      }
    };
  }
  ...
}

, а затем в PlantedActivities я сделал:

activeSeeds = await plantsController.getPlantsHelper();
...