fs.readFile не выводит json

Рейтинг: 0Ответов: 1Опубликовано: 08.02.2023

Есть файл users.json в котором хранятся данные локальных пользователей. Нужно было что бы при изменении каких то данных в нем при помощи fs.writeFile() файл автоматически обновлялся. Для это использовал require(), но понял что через него скорее всего ничего не смогу сделать. Решил использовать fs.readFileSync() на выходе получал Buffer, а через fs.readFile() получал undefined.

Нужно как то заставить файл данных обновляться при использовании программы, написать функцию.

Вот пример обьекта пользователя:

username: {
  password: String,
  root: Boolean
}

Ответы

▲ 0Принят

При записи данных можно передавать либо Buffer либо string.

Ниже пример записи и чтения файла(node -v -> 14.17)

import fs from 'fs';

const x = {
  name: '123',
  data: '456'
}

fs.writeFile('temp.json', JSON.stringify(x), { encoding: 'utf8' }, () => {
  console.log('Файл сохранен')
});

fs.readFile('temp.json', (err, data) => {
  console.log(1, data); // Будет Buffer
  console.log(2, JSON.parse(data)); // Будет исходный объект
})