您如何从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
}
}
如何访问控制器内的方法?
我找到了解决方案:-)
"use strict"
var self = module.exports = {
myName : function(req, res, next) {
// accessing method within controller
self.getName(data);
},
getName : function(data) {
// code
}
}
您可以通过getName
访问module.exports
功能。像这样:
"use strict"
module.exports = {
myName : function(req, res, next) {
// accessing method within controller
module.exports.getName(data);
},
getName : function(data) {
// code
}
}
也许您可以这样做。它减少嵌套。并且所有导出操作都在文件末尾完成。
"use strict";
var _getName = function() {
return 'john';
};
var _myName = function() {
return _getName();
};
module.exports = {
getName : _getName,
myName : _myName
};
如果您想在其他文件中本地使用该功能...
function myFunc(){
return 'got it'
}
module.exports.myFunc = myFunc;