【发布时间】:2020-09-19 03:46:04
【问题描述】:
我正在开发一个 express API,我想用这个 api 连接到一个 mysql 服务器。设置存储在settings.json 文件中。我用
const config = JSON.parse(require(`fs`).readFileSync('../../settings.json'));
如果 json 文件位于同一目录中,则此方法有效。但在这种情况下,设置文件位于基本目录中(./settings.json),但我希望它访问的文件是:./modules/sql/mysql.js。它不起作用:
Error: ENOENT: no such file or directory, open '../../settings.json'
有没有更好的方法来访问/读取 json 文件?还是我做错了什么?
顺便说一句。我不想将设置作为变量传递。我已经尝试过了,但如果可能的话 - 我想避免它。
文件/目录结构
【问题讨论】:
-
更好的方法是使用 __dirname 和可能的 path.join()。有很多方法可以解决这个问题,但 __dirname 可以通过提供目录的路径来提供帮助。
-
@AlexanderStaroselsky 尝试过,但得到同样的错误
-
更新问题以显示更新后的代码。同时显示文件结构。
-
请显示运行此代码的脚本所在的路径以及
settings.json文件所在的路径。如果您知道当前安装中这两个项目的完整路径(或公共命名父项的路径),我们只能帮助您解决相对路径问题。 -
如果您向我们展示了我在之前评论中询问的两件事的完整路径,我们可以为您提供帮助。没有这个,我们所能做的就是做出疯狂的猜测(这通常对任何人都没有意义),这意味着这是一个不完整的问题。这就是为什么你会得到反对票。将必要的信息添加到问题中,您将很快得到答案。
标签: javascript node.js json express