我试图遵循模块的基本指南。我创建了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");
}
答案 0 :(得分:3)
exports
是一个局部变量。分配给它不会改变导出的值。您想直接分配到module.exports
:
module.exports = textFunction;
module.exports
和exports
最初引用相同的值(对象),但分配给exports
不会更改module.exports
,这是重要的。 exports
存在是为了方便。
另一个问题是你没有正确地要求模块,但这可能只是一个错字。你应该做的
var textFunction = require('./test_module');
var textFunction = ('./test_module');
只是将字符串'./test_module'
分配给textFunction
,我们都知道字符串不是函数。