引用规则
/表示绝对路径,./表示相对路径默认依次尝试js、json、node扩展名
不写路径默认为
build-in或者node_modules中的模块
特性
- 加载一次会执行并缓存在内存中
示例:同一目录下有三个文件mo.js:
var i = 0i++console.log('this is ' + i + "th models")var testVar = 100function testFun(){testVar++console.log("this is " + testVar)}module.exports.testVar = testVarmodule.exports.testFun = testFun
mo2.js:
const mo = require("./mo.js")module.exports.testVar = mo.testVarmodule.exports.testFun = mo.testFun
index.js:
const mo = require("./mo.js")const mo2 = require("./mo2.js")console.log(mo.testVar)mo.testFun()const mo3 = require("./mo.js")
mo.js中的内容依旧只执行一次
- 循环依赖的情况
mo.js
module.exports.test = "A"const modB = require("./mo2")console.log("modA: ",modB.test)module.exports.test = "AA"
mo2.js
module.exports.test = "B"const modB = require("./mo")console.log("modB: ",modB.test)module.exports.test = "BB"
index.js
const mo = require("./mo.js")const mo2 = require("./mo2.js")output
$ node index.jsmodB: AmodA: BB
分析:部分执行
