Чтение и запись JSON файлов в NODE JS

Технологии

В Node.js для чтения и записи данных в JSON файлы используются модули fs (File System) для работы с файловой системой и JSON для работы с JSON данными.

Вот пример того, как можно прочитать JSON файл и записать данные в него:

Чтение JSON файла:

const fs = require('fs');

// Указываем путь к файлу, который вы хотите прочитать
const filePath = 'путь_к_вашему_файлу.json';

// Чтение файла
fs.readFile(filePath, 'utf8', (err, data) => {
  if (err) {
    console.error('Ошибка при чтении файла:', err);
    return;
  }

  // Распарсим JSON данные
  try {
    const jsonData = JSON.parse(data);
    console.log('Прочитанные данные:', jsonData);
  } catch (parseError) {
    console.error('Ошибка при парсинге JSON:', parseError);
  }
});

Запись в JSON файл:

const fs = require('fs');

// Данные, которые вы хотите записать в файл
const dataToWrite = {
  name: 'John',
  age: 30,
  city: 'New York',
};

// Путь к файлу, в который нужно записать данные
const filePath = 'путь_к_вашему_файлу.json';

// Запись данных в файл
fs.writeFile(filePath, JSON.stringify(dataToWrite, null, 2), (err) => {
  if (err) {
    console.error('Ошибка при записи файла:', err);
    return;
  }
  console.log('Данные успешно записаны в файл.');
});

Этот код сначала читает файл в формате JSON, затем парсит его и выводит данные. Затем он записывает новые данные в файл, предварительно преобразовав их в строку JSON.

Убедитесь, что вы заменили 'путь_к_вашему_файлу.json' на фактический путь к вашему JSON файлу и настройте данные в dataToWrite так, как вам нужно.

Вы можете использовать async/await для асинхронного кода. Вот пример чтения и записи JSON файла с использованием async/await:

const fs = require('fs').promises; // Используем fs.promises для асинхронных операций

async function readAndWriteJsonFile() {
  try {
    // Указываем путь к файлу, который вы хотите прочитать
    const filePath = 'путь_к_вашему_файлу.json';

    // Чтение файла
    const data = await fs.readFile(filePath, 'utf8');

    // Распарсим JSON данные
    const jsonData = JSON.parse(data);
    console.log('Прочитанные данные:', jsonData);

    // Данные, которые вы хотите записать в файл
    const dataToWrite = {
      name: 'John',
      age: 30,
      city: 'New York',
    };

    // Запись данных в файл
    await fs.writeFile(filePath, JSON.stringify(dataToWrite, null, 2));
    console.log('Данные успешно записаны в файл.');
  } catch (error) {
    console.error('Произошла ошибка:', error);
  }
}

readAndWriteJsonFile();

Этот код создает асинхронную функцию readAndWriteJsonFile, внутри которой используются await для чтения и записи файла. Обработка ошибок также осуществляется с помощью блока try/catch. Убедитесь, что вы заменили 'путь_к_вашему_файлу.json' на фактический путь к вашему JSON файлу и настроили данные в dataToWrite по вашим потребностям.

Чтобы получить относительный путь к файлу JSON внутри вашего проекта, вы можете воспользоваться модулем path из Node.js. Этот модуль предоставляет методы для работы с путями к файлам и директориям.

Вот как можно получить относительный путь к файлу JSON, находящемуся в той же директории, где находится ваш скрипт:

const path = require('path');

// Получаем абсолютный путь к текущему скрипту
const currentScriptPath = __filename;

// Извлекаем путь к директории, в которой находится текущий скрипт
const currentScriptDirectory = path.dirname(currentScriptPath);

// Собираем путь к файлу JSON
const jsonFilePath = path.join(currentScriptDirectory, 'имя_файла.json');

console.log('Относительный путь к файлу JSON:', jsonFilePath);

Замените 'имя_файла.json' на фактическое имя вашего JSON файла. После выполнения этого кода переменная jsonFilePath будет содержать относительный путь к файлу JSON в той же директории, где находится ваш скрипт.

Если JSON файл находится в другой папке внутри вашего проекта, вы можете использовать path модуль, чтобы создать относительный путь от текущей директории вашего скрипта до JSON файла. Вот пример:

const path = require('path');

// Получаем абсолютный путь к текущему скрипту
const currentScriptPath = __filename;

// Извлекаем путь к директории, в которой находится текущий скрипт
const currentScriptDirectory = path.dirname(currentScriptPath);

// Определяем относительный путь к папке, содержащей JSON файл
const relativeFolderPath = 'путь_к_другой_папке_в_проекте';

// Собираем полный относительный путь к JSON файлу
const jsonFilePath = path.join(currentScriptDirectory, relativeFolderPath, 'имя_файла.json');

console.log('Относительный путь к файлу JSON:', jsonFilePath);

В этом примере, вы должны заменить 'путь_к_другой_папке_в_проекте' на относительный путь к папке, в которой находится JSON файл внутри вашего проекта. Таким образом, переменная jsonFilePath будет содержать полный относительный путь к JSON файлу в другой папке вашего проекта.

Конечно, предположим, у вас есть следующая структура проекта:

project-root/
  |-- data/
  |     |-- example.json
  |-- src/
  |     |-- your_script.js

И вам нужно получить относительный путь к файлу example.json. В файле your_script.js вы можете сделать это следующим образом:

const path = require('path');

// Получаем абсолютный путь к текущему скрипту
const currentScriptPath = __filename;

// Извлекаем путь к директории, в которой находится текущий скрипт
const currentScriptDirectory = path.dirname(currentScriptPath);

// Определяем относительный путь к папке с JSON файлом
const relativeJsonFolderPath = '../data';

// Собираем полный относительный путь к JSON файлу
const jsonFilePath = path.join(currentScriptDirectory, relativeJsonFolderPath, 'example.json');

console.log('Относительный путь к файлу JSON:', jsonFilePath);

В этом примере '../data' — это относительный путь к папке, содержащей JSON файл относительно местоположения вашего скрипта. Путь преобразуется в абсолютный путь, и затем добавляется 'example.json' для формирования полного пути к JSON файлу. Убедитесь, что путь верный и соответствует фактическому расположению файла example.json в вашем проекте.

Оцените автора
Лента Пути
Добавить комментарий