节点JS调用module.exports中的“本地”function

如何从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 } } 

如何访问控制器内的方法?

我find了解决办法:-)

 "use strict" var self = module.exports = { myName : function(req, res, next) { // accessing method within controller self.getName(data); }, getName : function(data) { // code } } 

也许你可以这样做。 它减less了嵌套。 所有的导出都在文件的最后完成。

 "use strict"; var _getName = function() { return 'john'; }; var _myName = function() { return _getName(); }; module.exports = { getName : _getName, myName : _myName }; 

您可以访问getName函数槽module.exports 。 像这样:

 "use strict" module.exports = { myName : function(req, res, next) { // accessing method within controller module.exports.getName(data); }, getName : function(data) { // code } }