Node.js

module

1. exports :输出内容对象,默认情况下 exports === module.exports

返回目录

1. Node 的模块化是使用 CommonJS 规范

  1. exports :输出内容对象,默认情况下 exports === module.exports
  1. module.exports :输出内容对象,其他模块引用时会读取这里
module.exports = exports = { a: a };

2. module 对象

Module {
	id: '.',                    //唯一标识
	exports: { },               //输出对象
	parent: null,               //父模块 (被那个模块引用)
	filename: 'C:\\Users\\Administrator\\Desktop\\Bluej\\node\\module.js',
	loaded: false,              //被加载完成
	children: [],               //子模块
	paths:                      //查询依赖的路径
	['C:\\Users\\Administrator\\Desktop\\Bluej\\node\\node_modules',
	'C:\\Users\\Administrator\\Desktop\\Bluej\\node_modules',
	'C:\\Users\\Administrator\\Desktop\\node_modules',
	'C:\\Users\\Administrator\\node_modules',
	'C:\\Users\\node_modules',
	'C:\\node_modules']
}

3. 如何引入模块

引入 tool.js 模块

//引入文件
// var tool = require('./tool');
var { add, myRequest } = require("./tool");
// console.log(tool);

console.log(add(1, 2));

console.log(myRequest()); //父模块调用子模块方法

被引入的 tool.js

//被引入的模块

//module 里面的exports属性,其实就是 exports
console.log("exports", module.exports === exports); //true

//require 函数,引入其他模块
//module
console.log("__filename", __filename); //文件地址
console.log("__dirname", __dirname); //当前目录地址

var obj = {
  name: "tool"
};
function add(a, b) {
  return a + b;
}
//两种写法
module.exports = {
  obj,
  add
  // myRequest  //下面的相当于在这里加多一个对象
};
module.exports.myRequest = function() {
  return module; //当前模块
};