nodejs中require的路径是一个文件夹时发生了什么
node中使用require的時候如果路徑是一個文件夾時,或者特殊的情況require('..');require('.');
這是node實戰(zhàn)這本書里說的情況,但是我在node6.9版本中發(fā)現(xiàn)不完全是這樣,可能是后來做了修改。下面說說在6.9下require路徑的過程。
這里以require('.')說明,一個點說明要require當(dāng)前目錄,這時候,node會優(yōu)先查找package.json這個文件(即使有index.js這個文件也會先被忽略),然后查找package.json文件里的main鍵值對應(yīng)的值xx.js,然后拿到這個值進行加載相應(yīng)的文件,否則,如果沒有鍵值main或者沒有找到xx.js則開始查找當(dāng)前目錄下有沒有index.js,如果有則使用,否則出錯。下面是具體的實踐:
以下文件都在一個文件夾下
example.js
var test = require('.');
console.log(test.a);
package.js
{
"main":"./test1.js"
}
test1.js
module.exports = {
a:1
}
index.js
module.exports = {
a:3
}
我們可以看到,執(zhí)行example腳本時輸出的是1,如果把main的項去掉或者把main對應(yīng)的值改成不存在的文件,則會加載index.js,輸出3,如果不存在這個index.js則報錯
總結(jié)
以上是生活随笔為你收集整理的nodejs中require的路径是一个文件夹时发生了什么的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 做梦梦到捡钱怎么回事
- 下一篇: 为什么总是梦到一个人