模块 ---> 可以理解为是一个功能体(积木块)
nodejs下模块分为自定义模块、核心模块(官方提供)、第三方模块
node.js下,任意一个文件都是一个模块,任意一文件中的代码都是被一个构造函数所包含
//(function(exports,require,module,__dirname,__filename){
var a=1;
console.log(__dirname); // 当前文件的完整路径
console.log(__filename); // 当前文件的完整路径和文件名称
//})
require('./02.js'); // 引入一个模块
例1:
//【02.js】
console.log('02.js');
// 【02.js】
// 引入02.js的模块 // ./同一级目录
require('./02.js');
例2:
console.log('02.js');
var a=1;
function fn(){
console.log(123);
}
// 把a变量和fn公开
module.exports.a=a; // module指代当前的模块对象
module.exports.fn=fn; // module.exports 当前模块的导出对象(公开),可以提供其他的模块使用的属性和方法;
// 引入02.js的模块
// ./同一级目录
var obj = require('./02.js');
console.log(obj);
obj.fn();
例3:
【main.js】
/* 练习:创建两个模块,main.js和circle.js;在功能模块中创建两个函数, 传递1个参数,分别获取圆的周长getlength和面积getarea, 导出这两个函数,在主模块中引入功能模块,调用两个方法;*/ var obj = require('./circle.js'); console.log(obj); console.log(obj.getlength(2)); console.log(obj.getarea(2));
【circle.js】
function getlength(r){ return 2*PI*r; } function getarea(r){ return PI*r*r; } // 公开函数 module.exports.getlength=getlength; module.exports.getarea=getarea;