在节点js中不起作用fs.readFile

oih*_*i08 10 file fs node.js

我有:

 fs.readFile('../services/Prescipcion.xml', "utf8", function (err, data) {
    console.log("err->", err);
    console.log("data", data);
 });
Run Code Online (Sandbox Code Playgroud)

并记录:

err-> { 
  [Error: ENOENT: no such file or directory, open '../services/Prescipcion.xml']
  errno: -2,
  code: 'ENOENT',
  syscall: 'open',
  path: '../services/Prescipcion.xml' 
}
Run Code Online (Sandbox Code Playgroud)

我不明白为什么会这样.

xav*_*ert 27

错误消息说no such file or directory,乍一看这很可能意味着文件的路径不正确.

文件名不正确(拼写错误?)或目录未正确解析.请注意,相对路径将被解决process.cwd():

process.cwd():返回进程的当前工作目录.

您可以尝试使用它console.log(process.cwd())来帮助您调试问题.

如果Prescipcion.xml应该从运行脚本的本地检索文件,您还可以使用以下构造:

fs.readFileSync(path.join(__dirname, '../services') + '/Prescipcion.xml', 'utf8');

__dirname:当前正在执行的脚本所在的目录的名称.

  • `请注意,将针对 process.cwd() 解析相对路径非常有帮助。 (4认同)

Hit*_*ahu 5

对我有用

  var fs = require("fs");

    const readFIle = path => {
      fs.readFile(__dirname + path, "utf8", (err, data) => {
        if (err) {
          console.log(err.stack);
          return;
        }
        console.log(data.toString());
      });
      console.log("Program Ended");
    };
Run Code Online (Sandbox Code Playgroud)

用法:

readFIle(“ / input.txt”);