首先要安装node.js.
- CommonJS:
CommonJS是node.js使用的模块规范,node.js是有自带的模块规范的,就是CommonJS。 - global全局对象
- process代表当前执行的进程,它是挂在global对象下的。
CommonJS规范的规定: - 每个文件是一个模块,并且有自己的作用域。反过来也可以理解成,一个文件就是一个模块,而且一个文件内只能有一个模块。如果我们想在node.js中定义两个模块那是不允许的。自己的作用域看上图中的包裹函数就能理解了,那个包裹函数是node.js为我们自动添加的。
- 在模块内部module变量代表模块本身。
- module.exports属性代表模块对外接口。
require规则:
/
表示绝对路径,./
表示相对于当前文件的路径- 支持js , json , node 拓展名,不写依次尝试
- 不写路径则认为是build-in模块或者各级node_modules内的第三方模块,通过npm安装的模块都会在当前叫node_modules的文件夹内。
require特性:
- module被加载的时候执行,加载后缓存。也就是说只加载一次并执行一次。第二次就直接用放在内存中的结果,不会重复加载。
- 一旦出现某个模块被循环加载,就只输出已经执行的部分,还未执行的部分不会输出。
module.exports和exports的区别:
const exports = module.exports;
exports就相当于 module.exports的快捷方式。既然是快捷方式,那我们是不能改变它的指向的,如果修改了它的指向那它和任何普通的对象就没有什么区别了
exports = {
a:1,
b:2,
test:100
}
//这么写就修改了它的指向,是不对的。
//但是我们可以这么写
module.exports = {
a:1,
b:2,
test:100
}
在common.js中模块对外的输出永远是module.exports
我们可以为exports
一个一个添加属性是可以的
比如:
exports.a = 1;
exports.b = 2;
exports.test = 100;
global全局对象
在node.js中,可以全局访问的对象和方法放在了global对象中。
- CommonJS
- Buffer,process,console
- timer