javascript - 在 Node js(Intellij)中找不到文件

标签 javascript node.js intellij-idea

我正在使用 Node js Express。我正在尝试访问位于该 js 文件同一目录中的文本文件。所以文件结构是这样的

- ProjectFolder
  |
  - many modules and folders
  - routes
    |
    - Index.js
    - input.txt

我尝试过的简单代码是,

var data = fs.readFile('~/IdeaProjects/Title/routes/input.txt');
console.log("Synchronous read: " + data.toString());

console.log("Program Ended");

我确实尝试了不同的路径,但没有任何效果。供您引用,我使用 fedora 作为操作系统。

我得到的错误是,

Error: ENOENT: no such file or directory, open '~/IdeaProjects/Title/routes/input.txt'
at Error (native)

任何有关如何访问该文件以便我可以读取和写入该文件内容的建议都将受到欢迎。寻找详细答案。

最佳答案

Node 不会解释一些具有特殊含义的字符,例如 ~或像 $HOME 这样的 shell 变量,因此您需要使用类似 path.resolve() 的内容获取绝对路径或使用相对路径(例如 IdeaProjects/Title/routes/input.txt )。

此外,正如 @Gothdo 指出的那样,文件名存在差异,这将导致区分大小写的文件系统出现问题。

您还需要更改 fs.readFile()fs.readFileSync()或添加回调到 fs.readFile()像这样:

fs.readFile('~/IdeaProjects/Title/routes/input.txt', function(err, data) {
  if (err) throw err;
  console.log("Synchronous read: " + data.toString());
  console.log("Program Ended");
});

关于javascript - 在 Node js(Intellij)中找不到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36359893/

相关文章:

javascript - 我可以在 Coffeescript 中继承类定义代码吗?

javascript - 为无框窗口添加边框 - Electron

javascript - ExpressJS 响应中间件

php - 使用 PHP 和 Nodejs Socket.io

scala - Intellij : Not a valid project ID:

java - 在 IntelliJ Java 应用程序 SLF4j 记录器错误中运行 Tomcat

javascript - 获取请求中的错误不会停止功能

javascript - 如何在 GSAP 或 Javascript 中以不同的时间间隔调用函数?

sockets - 获取 Node.js 套接字关闭/结束事件的远程端点属性

java - 为 IntelliJ 项目设置 java SDK