1.module.exports属性 module.exports属性表示当前模块对外输出的接口,其余文件加载该模块,实际上就是读取module.exports变量。 2.exports变量 node为每个模块提供了一个exports变量(能够说是一个对象),指向 module.exports。至关于在模块头部加了这句话:var exports = module.exports,在对外输出时,能够给exports对象添加方法,PS:不能直接赋值(由于这样就切断了exports和module.exports的联系); 注【若是两个很差区分,那就放弃 exports,用 module.exports 就好。。。】
(1)若是参数字符串以“/”开头,则表示加载的是一个位于绝对路径的模块文件。好比,require('/home/job/job.js')将加载/home/job/job.js。 (2)若是参数字符串以“./”开头,则表示加载的是一个位于相对路径(跟当前执行脚本的位置相比)的模块文件。好比,require('./user')将加载当前脚本同一目录的user.js。
(3)若是参数字符串不以“./“或”/“开头,则表示加载的是一个默认提供的核心模块(位于Node的系统安装目录中),或者一个位于各级node_modules目录的已安装模块(全局安装或局部安装)。 (4)若是参数字符串不以“./“或”/“开头,并且是一个路径,好比require('example-module/path/to/file'),则将先找到example-module的位置,而后再以它为参数,找到后续路径。 (5)若是指定的模块文件没有发现,Node会尝试为文件名添加.js、.json、.node后,再去搜索。.js件会以文本格式的JavaScript脚本文件解析,.json文件会以JSON格式的文本文件解析,.node文件会以 编译后的二进制文件解析。 (6)若是想获得require命令加载的确切文件名,使用require.resolve()方法。