查看NodeJS
的express
框架的随机source file,有两行代码我不明白(这些代码行几乎是所有NodeJS文件的典型代码)。NodeJS/Express中的“module.exports”和“exports.methods”是什么意思?
/**
* Expose `Router` constructor.
*/
exports = module.exports = Router;
和
/**
* Expose HTTP methods.
*/
var methods = exports.methods = require('./methods');
我明白的代码的第一块允许的功能,其余在文件中被暴露于应用程序的NodeJS,但我不明白确切地说它是如何工作的,或者行中的代码意味着什么。
exports
和module.exports
究竟是什么意思?
我相信第二张的代码允许文件中的函数访问methods
,但同样,究竟它是如何做到这一点。
基本上,这些是什么神奇的话:module
和exports
?
你可以解释为什么exports = module.exports = Router;构造用于? – 2012-02-02 20:11:30
@ShaneCourtrille如果它只是不好的代码。 – Raynos 2012-02-02 20:57:04
这很不幸,因为目前为止我所见过的大部分源代码(我承认这是非常有限的)使用它,包括connect.js – 2012-02-02 21:38:29