无法导出函数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.exports
和exports
最初引用相同的值(一个对象),但是分配到exports
将不会改变module.exports
,这是很重要的。 exports
是为了方便。
另一个问题是,你没有正确地要求模块,但这可能只是一个错字。 你应该做的
var textFunction = require('./test_module');
var textFunction = ('./test_module');
只是将string'./test_module'
分配给textFunction
,我们都知道string不是函数。