无法导出函数表达式:" TypeError:xxx不是函数"

时间:2015-11-04 22:36:49

标签: node.js module

我试图遵循模块的基本指南。我创建了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");
}

1 个答案:

答案 0 :(得分:3)

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

module.exports = textFunction;

module.exportsexports最初引用相同的值(对象),但分配给exports不会更改module.exports,这是重要的。 exports存在是为了方便。

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

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

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