在此页面(http://docs.nodejitsu.com/articles/getting-started/what-is-require)上,声明“如果要将导出对象设置为函数或新对象,则必须使用module.exports对象。”
我的问题是为什么。
// right
module.exports = function () {
console.log("hello world")
}
// wrong
exports = function () {
console.log("hello world")
}
我console.logged结果(result=require(example.js)
)和第[Function]
一个是{}
。
您能否解释其背后的原因?我在这里阅读了这篇文章:Node.js中的module.exports与export。它很有帮助,但没有说明采用这种方式进行设计的原因。如果直接返回出口参考书会不会有问题?
exports
,例如github.com/tj/consolidate.js/blob/master/lib/consolidate.js?
module.exports
,那么您永远不会错,但是exports
如果您不替换默认的导出对象,也就是简单地附加如下属性,就可以使用var foo = require('foo').foo
。foo
可以这样导出该属性:exports.foo = ...
当然也可以使用导出module.exports
。这是个人选择,但我目前正在使用module.exports
并且exports
适当。
module.exports
。