module
module
模块简介
- 1.首先按照加载的模块的文件名称进行查找 
- 2.如果没有找到,则会在模块文件名称后加上.js的后缀,进行查找 
- 3.如果还没有找到,则会在文件名称后加上.json的后缀,进行查找 
- 4.如果还没有,则会在文件名称后加上.node的后缀,进行查找 
文件名称 -> .js -> .json -> .node
所有的exports收集到的属性和方法,都赋值给了module.exports。当然,这有个前提,就是module.exports本身不具备相同属性和方法。如果,module.exports已经具备一些属性和方法,那么exports收集来的相同信息将被忽略。
Nodejs加载模块
//导出函数
exports.a = function() {
    console.log();
};
//导出变量
exports.b=10;- 在模块中定义的变量,其作用域范围是当前模块,外部不能够直接的访问 
- 如果我们想一个模块能够访问另外一个模块中定义的变量,可以: - 1.把变量作为global对象的一个属性,但是这样的做法是推荐 
- 2.使用模块对象 module 
 
//使用`global`定义的是全局模块,
global.a = 200;exports是module.exports的引用。
可以使用exports.xxx或者module.exports.xxx写入变量或者函数方法等。
不能有module.exports=xxx,这样module.exports与exports的关系就会断开。
exports错误引用
//bar.js
console.log( module.exports === exports );
var bar = function(){
    console.log(‘it is bar’);
};
console.log( module.exports === exports );
exports = bar;
console.log( module.exports === exports );
//output
//true
//true
//false
//use-bar.js
var bar = require(‘./bar.js’);
bar();  //这个会报错:TypeError: object is not a functionLast updated
Was this helpful?
