nodejs中的模块

基本用法

nodejs中的模块管理遵循commonjs规范。使用module.exports(可简写为exports)导出模块,使用require来引入模块。

例:

myModule.js

var myFunction=function(name){
  return 'my name is ' + name;
}
module.exports=myFunction;
// 也可也成exports = muyFunction;
main.js

var myFunction = require('./myModule');
console.log(myFunction('Tom')); //my name is Tom

模块缓存

一个模块若被多次引入,只会被加载一次。例:
sum2.js
console.log('module2');
module.exports = function(a, b) {
  return a + b;
}
sum3.js
var sum2 = require('./sum2');
console.log('module3');
module.exports = function(a, b, c) {
  return sum2(sum2(a, b), c);
}
main.js
var sum2 = require('./sum2');
var sum3 = require('./sum3');
console.log(sum3(1, 2, 3)); //6
module2只会被打印一次,虽然sum3.js中引用了一次,main.js中又引用了一次,这就是模块缓存。

依赖闭环

假如两个模块相互依赖,会出现什么情况呢?
a.js
var b = require('./b.js');
console.log('module a');
module.exports=function(){
  return 'I am a';
}
b.js
var a = require('./a.js');
console.log('module b');
module.exports=function(){
  return 'I am b';
}
main.js
var a = require('./a.js');
var b = require('./b.js');
console.log(a());
console.log(b());
会依次打印出
module b
module a
I am a
i am b
这可以用依赖缓存来解释。
因为先引入的模块a,而模块a依赖模块b,所以模块b被首先加载了。然后模块a,b都在缓存中了。
然后再去引模块b的时候,就会从缓存中读了。






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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值