Как прочитать файл по URL в узле JS

Я рекомендую использовать glob для выполнения этой задачи.

var glob = require( 'glob' )
  , path = require( 'path' );

glob.sync( './routes/**/*.js' ).forEach( function( file ) {
  require( path.resolve( file ) );
});

0
задан Manuel Spigolon 18 January 2019 в 11:49
поделиться

1 ответ

Вы можете архивировать это, используя потоки.

Выбранная вами библиотека line-by-line поддерживает их, поэтому вам остается только сделать это следующим образом:

  • создать читаемый поток (сформировать файл в файловой системе или из онлайн-ресурса через http)
  • передать поток в вашу библиотеку и прослушать события

Это работает, обратите внимание, что вам нужно требовать http или https на основе вашего URL, мой пример - https

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

const options = {
  host: 'stackoverflow.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();
0
ответ дан Manuel Spigolon 18 January 2019 в 11:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: