这是我的问题,我有一个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
实例。我该怎么办?
谢谢您的帮助。
答案 0 :(得分:1)
有很多方法...
我的最爱:您可以将自己的constroller创建为一个类...
这是一种代码,(不是最好的,但是正在运行)
控制器类
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);
})