如何访问上面多个目录的文件(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 文件的单个 JavaScript 对象?
Node.js学习7~基于Nodejs的高性能MVC框架node-eagle学习