node中每个模块都会被引擎自动封装一层类似于闭包的函数。
如:a.js内容如下:
var a=10; console.log(arguments.callee+'');
会打印如下结果:
function (efunction (exports, require, module, __filename, __dirname) {
var a=10;
}
可以看出node模块会在模块外面自动生成一个函数,并且带有五个实参;
module:代表模块本身
exports: 表示外露信息(指针指向module.exports)
require:引入其它模块
__filename: 带路径的文件名
__dirname: 路径
推荐使用:
module.exports={ a: 1, b:2}
也可以使用:
exports.a=1
exports.b=2
但是不能使用:(这样会改变exports的指针指向,切断与module.exports的关系)
exports={a:1,b=2,}
注:如果在一个模块中写了exports和module.exports两个,则b模块在引入a的时候,只会module.exports露出的信息。