Как повторно использовать одно и то же соединение с секвестом в любом месте моего приложения Express? - PullRequest
0 голосов
/ 24 декабря 2018

Вот моя проблема, у меня есть приложение Express, где я отделяю контроллеры (т.е. функции, вызываемые для каждого маршрута) от точки входа приложения:

index.js

...
const sequelize = new Sequelize(...);
const PersonController = require('controllers/PersonController');
router.route('/persons').get(PersonController.index)
...

controllers / PersonController.js

...
exports.index = (req, res) => {
  //Return all the lines of the `Persons` table
};
...

Но для доступа к базе данных у меня должен быть доступ к экземпляру sequelize в моих контроллерах.Как мне поступить?

Спасибо за помощь.

1 Ответ

0 голосов
/ 25 декабря 2018

Есть много способов ...

Мой любимый: вы можете создать свой контроллер как класс ...

Вот такой код, (не самый лучший,но что-то работает)

Класс контроллера

class PersonController {
      constructor(sequelize) {
           this.sequelize = sequelize;
      }

      index(req, res){
           const sequelize = sequelize;
           ... your code ...
      }

}

module.exports = PersonController;

После

const sequelize = new Sequelize(...);
const PersonController = require('controllers/PersonController');

router.route('/persons').get((req, res) => {
     const controller = new PersonController(sequelize);
     controller.index(req, res);
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...