当前位置: 首页 > 知识库问答 >
问题:

无法在节点js中使用fs.readFile

楚苏燕
2023-03-14

我有:

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

它记录了:

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

我不明白为什么会这样。

共有3个答案

堵宪
2023-03-14

一个完整的例子对我有用,基于其他答案

var fs = require('fs');
var path = require('path');
var readStream = fs.createReadStream(path.join(__dirname, '../rooms') + '/rooms.txt', 'utf8');
let data = ''
readStream.on('data', function(chunk) {
    data += chunk;
}).on('end', function() {
    console.log(data);
});
林德辉
2023-03-14

它对我有用

  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");
    };

用法:

readFIle("/input.txt");

卢开济
2023-03-14

错误消息显示没有这样的文件或目录,因此乍一看,这很可能意味着文件路径不正确。

要么文件名不正确(打字错误?)或者目录解析不正确。请注意,相对路径将针对process.cwd()进行解析:

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

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

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

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

\uuuu dirname:当前执行脚本所在目录的名称。

 类似资料:
  • 我只是一个初学者node.js我会尝试用xpress制作一个站点,这样我就可以在那里上传任何东西。我在我的mac上本地设置服务器。 这是我写的代码 server.js 这些是错误信息 节点上载。js公司 /Users/dayatura/Documents/node/node\u modules/express/lib/application。js:209抛出新的TypeError('app.use

  • 我想将值从反应发送到节点。我正在使用fetch,但我没有得到。这是代码:反应代码: 节点代码: const express=要求(“express”) const cors=require('cors') 常量应用=快速() app.use(cors({源: '*' }) ) app.listen(8000,'localhost') 应用程序。post(“/”,(req,res)= }) 当我参观

  • 这是我的Node Express代码, 但我将请求正文作为 {} 但在我的网络选项卡在Chrome我可以看到请求有效负载。请注意选项在此POST调用之前被激发。 请求标头 POST/abchttp/1.1 host:localhost:8112连接: 保持活动内容-长度:11 pragma:no-cache cache-control:no-cache 来源:http://localhost:42

  • 我有一个Vuejs应用程序,我试图添加谷歌认证。我使用这个插件https://www.npmjs.com/package/vue-google-oauth2在前端生成授权代码,然后将其发送到我的后端,以便它可以获得用户凭据。 以下是前端的代码: 在此之前,我成功地获取了授权代码,并将其发送到使用node编写的后端。js基于官方谷歌文档。https://github.com/googleapis/g

  • 我正在尝试使用Node验证Patreon的webhook签名。js。这是我的代码: Patreon webhooks使用MD5-请参阅https://docs.patreon.com/#webhooks. 我已经多次验证了密钥,所以我知道这不是问题。 “request.header(“x-patreon-signature”)”和“hash”都返回了正确的格式(即它们都是32位字母数字的组合),但

  • 我正在尝试迭代结果数组变量。 我可以在函数内部获取数组值,但是当我尝试在函数外部记录它时,它会显示null。 我在谷歌上搜索了几个帖子,我看到foreach不被推荐,建议是for循环,我甚至尝试过,结果为空。 游标中的问题是什么。forEach()。。。 日志结果: