无法导出函数expression式:“TypeError:xxx不是函数”

我试图按照模块的基本指南。 我已经创build了test_module.js

var textFunction = function() { console.log("text"); }; exports = textFunction; 

然后我尝试在我的app.js中使用它:

 var textFunction = ('./test_module'); textFunction(); 

但是我得到一个错误:

  TypeError: textFunction is not a function 

难道我做错了什么? 或者这是一个非常老的指导?

PS:出口只有在我声明如下的情况下才有效:

 exports.text = function() { console.log("text"); } 

exports是一个局部variables。 分配给它不会改变导出的值。 你想直接分配给module.exports

 module.exports = textFunction; 

module.exportsexports最初引用相同的值(一个对象),但是分配到exports将不会改变module.exports ,这是很重要的。 exports是为了方便。


另一个问题是,你没有正确地要求模块,但这可能只是一个错字。 你应该做的

 var textFunction = require('./test_module'); 

var textFunction = ('./test_module'); 只是将string'./test_module'分配给textFunction ,我们都知道string不是函数。