如何在节点js中通过url读取文件

Posted

技术标签:

【中文标题】如何在节点js中通过url读取文件【英文标题】:How to read file by url in node js 【发布时间】:2019-01-18 10:07:35 【问题描述】:

我对节点 js 使用逐行模块,我想从 url 设置文件,例如现在我有这个:

LineByLineReader     = require('line-by-line'),
  lr                   = new LineByLineReader('file.txt');

我想

LineByLineReader     = require('line-by-line'),
  lr                   = new LineByLineReader('http://test.pl/file.txt');

有可能吗?

【问题讨论】:

【参考方案1】:

您可以使用流存档。

你选择的库line-by-line支持它们,所以你只需要这样做:

创建可读流(在文件系统中或通过 http 从在线资源中形成文件) 将流传递到您的库并监听事件

这可行,请注意您需要根据您的 url 要求 httphttps,我的示例是 https

const http = require('https');
const LineByLineReader = require('line-by-line')

const options = 
  host: '***.com',
  path: '/questions/54251676/how-to-read-file-by-url-in-node-js',
  method: 'GET',
;

const req = http.request(options, (res) => 
  res.setEncoding('utf8');

  lr = new LineByLineReader(res);


  lr.on('error', function (err) 
    console.log('err', err);
  );

  lr.on('line', function (line) 
    console.log('line', line);
  );

  lr.on('end', function () 
    console.log('end');
  );

);
req.on('error', (e) => 
  console.log('problem with request', e);
  req.abort();
);
req.end();

【讨论】:

以上是关于如何在节点js中通过url读取文件的主要内容,如果未能解决你的问题,请参考以下文章

node.js如何将远程的文件下载到本地解压读取

在 iOS 中通过 GCDAsyncsocket 读取 xml 文件

如何在swift ios中通过键值读取子数据或过滤firebase数据

如何在节点js中读取csv文件

从 URL 读取 XML 文件并将数据保存在 Web 的数据库中 - 如何自动化该过程?

js读取文件流如何传入后台