【问题标题】:Relative Path Error in Nodejs?Nodejs中的相对路径错误?
【发布时间】:2017-01-01 13:14:09
【问题描述】:

您好,这是我的文件夹结构,我想在 app.js 中要求/导入 serverError.log 文件。

需要我正在使用的配置文件 "require(../../../../../config/db.js)" 并且它适用于 db.js。但是每当我给 readFile("../../.. /../../log/serverError.log")。

它没有给出这样的文件或目录,打开'../../../../../log/serverError.log'。但它在其他机器上工作正常。

谁能帮我解决这个问题

/home/akash/MYB_GIT
└── mbox
    ├── config
    │   └── db.js
    ├── log
    │   └── serverError.log
    ├── services
    │   └── Node
    │       ├── api
    │       │   └── user
    │       │       └── web
    │       │           └── app.js
    │       └── modules
    │           ├── Admin
    │           │   └── api1.js
    │           ├── Guest
    │           │   └── api2.js
    │           └── user
    │               └── api3.js
    └── Test
        └── seneca_client
            ├── audit
            └── user

【问题讨论】:

  • 你不应该再上一级(即"../../../../../../log/serverError.log")吗?
  • 如果您在两台机器上有相同的代码 - 一台工作,另一台不工作 - 您确定两台机器上的当前工作目录相同吗?也就是说,您确定在两台机器上以相同的方式启动节点进程吗?
  • 是的,两者都是一样的。但是它在其他机器上工作正常,但在我的机器上却不行。
  • Gothdo 我试过它给出了同样的错误。
  • require() 路径相对于脚本文件,readFile() 路径相对于您启动应用的目录。

标签: javascript node.js ubuntu relative-path


【解决方案1】:

我建议你使用 PATH 模块,特别是 path.resolve()。

path.resolve 将生成您提供给函数的项目的绝对路径。

例如,您的代码将是:

readFile(path.resolve("../../../../../log/serverError.log"))

https://nodejs.org/docs/latest/api/path.html

【讨论】:

    猜你喜欢
    • 2018-06-20
    • 2016-04-13
    • 2016-12-14
    • 2019-02-23
    • 2018-12-24
    • 2013-06-04
    • 1970-01-01
    • 2011-07-30
    • 2013-10-08
    相关资源
    最近更新 更多