Node.js filesystem сделать цикл для каждой строки

229
28 июля 2017, 04:00

Всем привет. Есть файл users.txt, он содержит следующее:

email@asdasd.ru:ashasdjh
email@asdhs.ru:gjdfgjdf
asddfj@asdf.ru:sjsdfk

Сделал банальный fs.watch, который отслеживает любое изменение в файле. Подскажите, пожалуйста, как сделать цикл, который будет делать следующие действия:

*открыть файл*
 *цикл для каждой строки*
  *записываем все, что было до : в массив users[i].email, что после - users[i].password
*закрываем файл*

Как правильно сделать такой цикл? Как работать со строками в файлах?

P.S. скрипт fs.watch:

fs.watchFile('users.txt', function(curr, prev) {
  var file_handle = fs.openSync("users.txt", "r", 0644);
  var data = fs.readSync(file_handle, 10000, null, 'ascii');
  console.log(data);
fs.closeSync(file_handle);
});
Answer 1
const fs = require('fs');
const filename = 'users.txt';
const users = [];
fs.watch(filename, () => {
    const text = fs.readFileSync(filename).toString();
    users.push(...text.split('\n').map(str => {
        email: str.split(':')[0].trim(),
        password: str.split(':')[1].trim()
    }));
    console.log(users);
});
READ ALSO
Пример с valueOf [дубликат]

Пример с valueOf [дубликат]

На данный вопрос уже ответили:

202
Как связать форму входа с другой страницой

Как связать форму входа с другой страницой

Как связать две страницы между собой?

288
Вечное выполнение UglifyJS WebStorm FileWatcher

Вечное выполнение UglifyJS WebStorm FileWatcher

Всем приветРешил настроить автосжатие своих скриптов и у меня почти получилось

176