我一直在考虑在使用es6构建的快速应用中实现依赖注入的想法。 实际项目如下所示:
/controllers/myController.controller.js
import express from 'express';
import MyModel from '/models/myModel.model.js';
class MyController{
constructor(){
this.router = express.Router();
}
getAll(){
var modelInstance = new MyModel();
this.router.get('/', (req , res) => {
res.send(modelInstance.getData());
});
}
}
/models/myModel.model.js
export class MyModel{
constructor(){
}
getData(){
return 'it\'s working';
}
}
但我认为更好的想法是导出这样的类实例:
/models/myModel.model.js
class MyModel{
constructor(){
}
getData(){
return 'it\'s working';
}
}
//export a new instance
export const ModelInstance = new MyModel();
然后像这样修改控制器
/controllers/myController.controller.js
import express from 'express';
//inject a new instance of the model
import {modelInstance} from '/models/myModel.model.js';
class MyController{
constructor(){
this.router = express.Router();
}
getAll(){
this.router.get('/', (req , res) => {
res.send(modelInstance.getData());
});
}
}
我不知道我的想法是否正确,但我认为这个例子对于这种模式来说是一个很好的应用。
您对此有何看法?
答案 0 :(得分:-1)
考虑到class
语法是好老prototype
的语法糖,我没有看到实例化单个MyModel
的意义,我认为你' d而是使用Object
({}
)作为单身人士:
export const myInstance = {
getData() {
return 'it\'s working';
}
}
顺便说一句,你对依赖注入意味着什么?此代码中没有,但您可以阅读有关它的更多信息here