【问题标题】:NodeJS - Cant find JSON FileNodeJS - 找不到 JSON 文件
【发布时间】: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


【解决方案1】:

你没有错过一个 ../ 吗?

尝试将“../../settings.json”替换为“../../../settings.json”

顺便说一句,最好使用 __dirname 方法,但如果没有它也应该可以正常工作:)

【讨论】:

  • 路径正确。我已经使用终端进入/components/sql/ 目录,然后使用cat ../../settings.json,效果很好。
猜你喜欢
  • 2019-07-07
  • 2019-02-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-06
  • 2020-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多