#javascript #node.js
Вопрос:
У меня есть текстовый файл, urls.txt, содержащий несколько различных URL-адресов для веб-сайтов:
http://google.com
http://postgresql.com
http://dfsghlkjdflkjdfhkl.com
https://nodejs.org/api/console.html
Я пытаюсь получить каждую строку отдельно с помощью LineReader, чтобы в конечном итоге передать каждый URL обработчику для чтения этого html
Вот мой app.js:
const fs = require('fs')
const lineReader = require('line-reader')
lineReader.eachLine('urls.txt', function(line){
console.log(line)
})
Выше будет выведена каждая строка на терминал. Я попытался разделить строки чем-то вроде
let arr = line.split(/r?n/);
…а затем доступ к индексу, но все, что я могу извлечь, — это один текстовый символ из каждой строки, используя этот метод. Я чувствую, что решение будет действительно очевидным, но последние 2 часа я занимался серфингом, пытаясь разобраться в этом!
Комментарии:
1. Поместите каждую строку в массив, тогда у вас будет индекс для каждой строки.
2. Спасибо, @Teemu. Я знал, что есть простое решение, но застрял в классическом случае чрезмерного обдумывания.
Ответ №1:
Я использовал следующее, чтобы решить свою проблему. Надеюсь, это поможет кому-то в будущем не зацикливаться на этом в своей голове.
let arr = fs.readFileSync('urls.txt').toString().split("n");
for(i in arr) {
console.log(arr[i]);
}
Комментарии:
1. Просто предупреждаю. Если вам нужны только значения массива, возможно, лучше использовать
for-of
цикл вместоfor-in
. Что-то вродеfor (const line of arr) { console.log(line); }