Я получаю репозиторий как нулевой, вводя репозиторий с узлом awilix

#node.js #awilix

Вопрос:

У меня есть модель под названием cabin, поэтому у меня есть cabinController и cabinRepository, и я хочу использовать репозиторий внутри контроллера, но это значение равно нулю.

Кают-компания:

 class CabinRepository {
  get() {
    return 'Hello cabin repository';
  }
}

module.exports = { CabinRepository };
 

Контроллер кабины

 class CabinController {
  constructor({ cabinRepository }) {
    this.cabinRepository = cabinRepository;
  }

  getCabins(req, res) {
    return this.cabinRepository.get();
  }
}

module.exports = { CabinController };
 

И я использую awilix для введения классов:

 const { createContainer, asClass, asFunction } = require('awilix');
const { Server } = require('./server');

//ROUTES
const Routes = require('../routes/adminRoutes');

// Controller
const { CabinController } = require('../controllers/cabinController');

// Repositories
const { CabinRepository } = require('../models/repositories/cabinRepository');

//CONTAINER
const container = createContainer();

container.register({
  server: asClass(Server).singleton(),
  router: asFunction(Routes).singleton(),
  cabinRepository: asClass(CabinRepository).singleton(),
  cabinController: asClass(CabinController).singleton(),
});

module.exports = { container };
 

Административные маршруты

 const { Router } = require('express');
const cors = require('cors');

const adminRoutes = function ({ cabinController }) {
  const router = Router();
  const apiRoutes = Router();

  // Cabin Routes
  apiRoutes.get('/cabin', cabinController.getCabins);

  apiRoutes.use(cors());

  router.use('/api', apiRoutes);

  return router;
};

module.exports = adminRoutes;
 

The strange thing here is that I inject cabinRepository inside the adminRoute function as cabinController, here it works if I do cabinController.get(), but inside the controller I get null with the following error:

Ошибка типа: Не удается прочитать свойства неопределенного (чтение ‘cabinRepository’) в getCabins (/приложение/контроллеры/cabinController.js:7:17) на уровне.обрабатывать [как handle_request] (/приложение/node_modules/express/lib/маршрутизатор/layer.js:95:5) на следующем (/приложение/node_modules/express/lib/маршрутизатор/маршрут.js:137:13) на маршруте.отправка (/приложение/node_modules/express/lib/маршрутизатор/route.js:112:3) на уровне.обработайте [как handle_request] (/app/node_modules/express/lib/маршрутизатор/слой.js:95:5) в /app/node_modules/express/lib/маршрутизатор/индекс.js:281:22 в функции.параметры процесса (/app/node_modules/express/lib/маршрутизатор/индекс.js:335:12) в следующем (/app/node_modules/express/lib/маршрутизатор/индекс.js:275:10) в функции.дескриптор (/app/node_modules/express/lib/маршрутизатор/индекс.js:174:3) на маршрутизаторе (/app/node_modules/express/lib/маршрутизатор/индекс.js:47:12)