如何在节点js中通过url读取文件
How to read file by url in node js
我为节点 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');
可能吗?
您可以使用流将其存档。
您选择的库 line-by-line
支持它们,因此您只需这样做:
- 创建可读流(在文件系统中形成文件或通过 http 从在线资源中形成文件)
- 将流传递到您的库并监听事件
这有效,请注意,您需要根据您的 url 要求 http
或 https
,我的示例是 https
const http = require('https');
const LineByLineReader = require('line-by-line')
const options = {
host: 'whosebug.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 设置文件,例如现在我有这个:
LineByLineReader = require('line-by-line'),
lr = new LineByLineReader('file.txt');
我想
LineByLineReader = require('line-by-line'),
lr = new LineByLineReader('http://test.pl/file.txt');
可能吗?
您可以使用流将其存档。
您选择的库 line-by-line
支持它们,因此您只需这样做:
- 创建可读流(在文件系统中形成文件或通过 http 从在线资源中形成文件)
- 将流传递到您的库并监听事件
这有效,请注意,您需要根据您的 url 要求 http
或 https
,我的示例是 https
const http = require('https');
const LineByLineReader = require('line-by-line')
const options = {
host: 'whosebug.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();