引用规则
/
表示绝对路径,./
表示相对路径默认依次尝试js、json、node扩展名
不写路径默认为
build-in
或者node_modules
中的模块
特性
- 加载一次会执行并缓存在内存中
示例:同一目录下有三个文件mo.js:
var i = 0
i++
console.log('this is ' + i + "th models")
var testVar = 100
function testFun(){
testVar++
console.log("this is " + testVar)
}
module.exports.testVar = testVar
module.exports.testFun = testFun
mo2.js:
const mo = require("./mo.js")
module.exports.testVar = mo.testVar
module.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.js
modB: A
modA: BB
分析:部分执行