我正在使用 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/