這兩個語句是否相同?節點需要目錄而不是特定文件
const deviceModule = require('..').device;
const deviceModule = require('../device');
我以爲需要一個模塊(我們沒有路徑)作爲參數。它是如何提供一個目錄以及.device是做什麼的?
感謝任何能夠幫助我更好地理解node.js和javascript的人。
這兩個語句是否相同?節點需要目錄而不是特定文件
const deviceModule = require('..').device;
const deviceModule = require('../device');
我以爲需要一個模塊(我們沒有路徑)作爲參數。它是如何提供一個目錄以及.device是做什麼的?
感謝任何能夠幫助我更好地理解node.js和javascript的人。
require('..').device
要求index.js
從父目錄,然後從該文件獲得device
。
所以,如果你有以下結構:
- index.js
- /foo
- - bar.js
隨着index.js
具有如下:
module.exports = {
device: "baz"
};
然後require("..").device
在bar.js
會給你"baz"
。
Here is the specification for loading a directory:
LOAD_AS_DIRECTORY(X)
1. If X/package.json is a file,
a. Parse X/package.json, and look for "main" field.
b. let M = X + (json main field)
c. LOAD_AS_FILE(M)
2. If X/index.js is a file, load X/index.js as JavaScript text. STOP
3. If X/index.json is a file, parse X/index.json to a JavaScript object. STOP
4. If X/index.node is a file, load X/index.node as binary addon. STOP
在你的榜樣
所以,它會:
package.json
並獲得main
屬性,然後加載如果它存在index.js
index.json
如果第4步不存在,它會如果存在非常感謝! – ctrax
@ctrax請不要忘記通過點擊向上/向下箭頭下的勾號來接受我的答案。這讓其他人知道我的答案是解決方案,同時也給了我一些代表作爲幫助的獎勵。你也得到一些代表接受!大家都贏了:) –
您可以使用模塊需要文件目錄加載index.node
。
1-有助於要求只有名稱的所有文件。不需要給文件的絕對路徑。
2-多個文件一次。
我編輯了你的問題 - 請不要把代碼放在標題中! –