Node.js中exports和module.exports的联系和区别

在nodeJS中可以通过require(模块名)来引入需要的模块,那么我们怎么导出模块呢,导出模块的方法有exports和module.exports这两种。
一、区别
1.exports
exports方法是导出一个对象,一般的写法是exports.xxx = yyy,这个yyy才是我们想要的值,示例代码如下。

foo.js

var a = 1;
exports.b = a;

bar.js

var c = require("./foo.js");
console.log(c.b);

变量c是我们通过require方法引入的对象,c有一个属性b,b对应的值是foo.js里需要导出的值为1的a这个变量。

2.module.exports
module.exports方法可以直接导出我们想要导出的那个变量,无论它是Object还是Function,看一段示例代码。

foo.js

var a = 1;
module.exports = a;

bar.js

var c = require("./foo.js");
console.log(c);

变量c就是我们想要的值为1的变量a。

二、联系

exports实际上是对module.exports的引用,Object对象是通过引用存储的,所以exports方法最终都是导入的module.exports导出的东西。

注意:

通过exports导出的模块,如果引入这个模块并且赋给一个变量后改变这个变量的某个属性或者值,那么这个变量指向的实际值已经不是你要的那个值了。
如有错误,请及时指正

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值