3.2 exports和module.exports导出的区别

使用require导入模块时,var md = require("./testExports") require返回值实际上是module.exports的值。

例子1:

在 testExports.js 文件中:

module.exports = {
    name : "张三",
    age : 18
}

在test.js文件中。

var md  = require("./testExports");

console.log(md.name);
console.log(md.age);

运行后,打印如下:

135046_r6M0_2601303.png

例子2:

把上面的 testExports.js 文件的内容改为下面的。

exports = {
    name : "张三",
    age : 18
}

打印如下:

135229_PEjr_2601303.png

这是因为我们写的代码被封装在function (exports, require, module, __filename, __dirname) { }   方法中 ,nodejs传递参数的时候传递的 exports的值等于 module.exports 。

这里把exports的引用指向另一个对象。只是改变了exports的引用。并没有改变module.exports的值。require加载模块时,返回的值是module.exports的值,所以获取不到值。

 

结论:

如果要暴露多个属性使用。module.exports  = { 属性1:值1,属性2:值2 } 。

如果只暴露单个属性。可以使用 module.exports.属性1 = 值1  或者    exports.属性1 = 值1。

 

 

 

转载于:https://my.oschina.net/kunBlog/blog/1632972

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值