Node.js找不到我自己的模块,该模块被绑定到父路径

时间:2018-10-22 10:14:01

标签: node.js fs

我有一棵这样的树。

folder1
    file1.js
folder2
    file2.js
index.js

我需要使用index.js来关闭我的file1

文件1中我要文件2

如果我这样做const file2= require('../folder2/file2.js');会起作用

如果我动态地这样做

const myFiles = fs.readdirSync('../folder2').filter(file => file.endsWith('.js'));
for (const file of myFiles ) 
{
    const myFile = require(`../folder2/${file}`);
} 

我知道了

 return binding.readdir(pathModule._makeLong(path), options.encoding);
                 ^

Error: ENOENT: no such file or directory, scandir 'displaying a wrong path here'

如果在我的readdir中我做了一个简单的./

我还是

Cannot find module './folder2/file2.js'

我真的不明白

1 个答案:

答案 0 :(得分:3)

fs不知道当前的模块路径,并且依赖于当前工作目录(process.cwd())的相对路径。

对于特定于当前模块路径的操作,应使用__dirname

fs.readdirSync(path.join(__dirname, '../folder2'))