sra*_*vis 7 javascript model-view-controller node.js express
如何从module.exports声明中的另一个函数中调用函数?
我有MVC结构节点js项目和一个名为TestController.js的控制器.我想访问控制器中的方法,但使用this关键字给出以下错误:
无法调用未定义的方法getName
"use strict"
module.exports = {
myName : function(req, res, next) {
// accessing method within controller
this.getName(data);
},
getName : function(data) {
// code
}
}
Run Code Online (Sandbox Code Playgroud)
如何访问控制器中的方法?
sra*_*vis 18
我找到了解决方案:-)
"use strict"
var self = module.exports = {
myName : function(req, res, next) {
// accessing method within controller
self.getName(data);
},
getName : function(data) {
// code
}
}
Run Code Online (Sandbox Code Playgroud)
Mat*_*dus 11
您可以访问getName功能槽module.exports.像这样:
"use strict"
module.exports = {
myName : function(req, res, next) {
// accessing method within controller
module.exports.getName(data);
},
getName : function(data) {
// code
}
}
Run Code Online (Sandbox Code Playgroud)
也许你可以这样做.它减少了嵌套.您的所有导出都在文件末尾完成.
"use strict";
var _getName = function() {
return 'john';
};
var _myName = function() {
return _getName();
};
module.exports = {
getName : _getName,
myName : _myName
};
Run Code Online (Sandbox Code Playgroud)