为 module.exports 赋值
Assigning value to module.exports
我正在阅读 Node.js Design Patterns 中的 module.exports。在本书中,提到:
Reassigning the exports variable doesn't have any effect, because it doesn't change the contents of module.exports, it will only reassign the variable itself.
因此以下代码是错误的:
exports = function() {
console.log('Hello');
};
我无法理解为什么上面的赋值是错误的?
您这样做会覆盖本地 exports
变量。每个 Node.js 文件周围的 wrapper function 是本地的。当您使用新对象时,V8 无法知道您对原始 exports
对象做了什么修改。
您要做的是覆盖 module
对象中的 exports
键。
module.exports = function() {
console.log('Hello');
};
为了更方便,您还可以分配给 exports
变量,以便您可以在本地利用它:module.exports = exports = ...
。这就是 exports
的真正含义,一种访问 module.exports
.
的更快方法
我正在阅读 Node.js Design Patterns 中的 module.exports。在本书中,提到:
Reassigning the exports variable doesn't have any effect, because it doesn't change the contents of module.exports, it will only reassign the variable itself.
因此以下代码是错误的:
exports = function() {
console.log('Hello');
};
我无法理解为什么上面的赋值是错误的?
您这样做会覆盖本地 exports
变量。每个 Node.js 文件周围的 wrapper function 是本地的。当您使用新对象时,V8 无法知道您对原始 exports
对象做了什么修改。
您要做的是覆盖 module
对象中的 exports
键。
module.exports = function() {
console.log('Hello');
};
为了更方便,您还可以分配给 exports
变量,以便您可以在本地利用它:module.exports = exports = ...
。这就是 exports
的真正含义,一种访问 module.exports
.