这两个陈述是否相同?
const deviceModule = require('..').device;
const deviceModule = require('../device');
我认为需要一个模块(我们没有路径)作为参数。如何提供目录以及.device的作用是什么?
感谢所有能帮助我更好地理解node.js和javascript的人。
答案 0 :(得分:4)
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
(如果存在)index.node
(如果存在)答案 1 :(得分:0)
您可以使用module require-file-directory。
1-帮助仅要求所有文件都带有名称。无需提供文件的绝对路径 2-一次多个文件。