如何访问上面多个目录的文件(node.js)?

Posted

技术标签:

【中文标题】如何访问上面多个目录的文件(node.js)?【英文标题】:How to access a file that's multiple dirs above (node.js)? 【发布时间】:2021-07-25 22:14:45 【问题描述】:

我的根文件夹中有一个文件commandList.json,还有一个/commands/utility/stats.js 文件,它试图访问commandList.json 文件。但是,这一行:

const contents = fs.readFileSync(`../../commandList.json`);

抛出错误:

Error: ENOENT: no such file or directory, open '..//..//commandList.json'

我找到了一个类似的question,但是,第一个答案是错误的,第二个不起作用。能否请您告诉我如何访问该文件,或者指向解释它的文档(我搜索了有关 Linux 和 node.js 的相对路径的文档,但它们对我来说还不够)?

这是我尝试过但没有成功的尝试解决方案(每一行都会抛出相同的错误):

const contents = fs.readFileSync(`../../commandList.json`);
const contents = fs.readFileSync(`./../commandList.json`);
const contents = fs.readFileSync(`/commandList.json`);
const contents = fs.readFileSync(`..//..//commandList.json`);
const contents = fs.readFileSync(`../..//commandList.json`);
    //FYI the code is in "repo-name" repo, so maybe that's the root folder?
const contents = fs.readFileSync(`repo-name/commandList.json`);

【问题讨论】:

【参考方案1】:

就在我即将发布问题时,我发现了一个工作解决方案:

const contents = fs.readFileSync(`././commandList.json`);

因此,如果您需要访问上述多个目录的文件,则需要./././ ... 结构。

我发布这个是因为我在互联网上的任何地方都找不到答案,我希望这将帮助其他人更快地找到解决方案。

【讨论】:

有用的提示,环境变量__dirname将指向你的目录根文件夹。您可以连接路径或使用path.join() 访问文件夹 @Elitezen __dirname 是一个很好的提示,但是我没有提到 path.join(),因为我认为它非常不言自明(知识很容易获得 here),我只是专注于一次移回多个目录的问题。

以上是关于如何访问上面多个目录的文件(node.js)?的主要内容,如果未能解决你的问题,请参考以下文章

node.js如何运行

Chokidar (Node.js) 的效率如何?

访问多个 node.js 文件的单个 JavaScript 对象?

Node.js学习7~基于Nodejs的高性能MVC框架node-eagle学习

Node.js学习7~基于Nodejs的高性能MVC框架node-eagle学习

如何在 node.js 中跨多个文件拆分类定义?