node.js

Это старая версия документа!


Node.js

Спочатку Node.js створювався як серверне оточення для додатків, але розробники почали використовувати його для створення інструментів, які допомагають автоматизувати виконання локальних завдань. У результаті нова екосистема інструментів, яка виникла навколо Node.js, призвела до трансформації процесу фронтенд-розробки.

Модулі Node.js

Модуль для роботи з шляхами до файлів під різні ОС.

Цей метод приймає аргументами рядки, які будуть перетворені у правильно форматований шлях базуючись на операційній системі, на якій запущена програма.

import path from 'node:path';

// приклад для побудови шляху з його частин
const somePath = path.join('some_folder', 'some_file.txt'); 
// somePath буде 'some_folder/some_file.txt' на MacOs

// somePath буде 'some_folder\\some_file.txt' на Windows

Дозволяє отримати інформацію по шляху, який був переданий аргументом

дає нам можливості працювати із файлами та папками

  • Синхронне виконання (погана швидкість)
import fs from 'node:fs';
const fileContent = fs.readFileSync('path_to_file');
  • Асинхронна через кол-бек функцію (максимальна швидкість але погане читання коду)
import fs from 'node:fs';

fs.readFile('path_to_file', (err, fileContent) => {
	/* ваш код */
});
  • Асинхронна через проміси (середня швидкість але гарне читання коду)
import fs from 'node:fs/promises';
const fileContent = await fs.readFile('path_to_file');

асинхронного читання даних із файлу.

import fs from 'fs/promises';

(async () => {
  try {
    const data = await fs.readFile('file.txt', 'utf8');
    console.log('Вміст файлу:', data);
  } catch (err) {
    console.error('Помилка читання файлу:', err);
  }
})();

асинхронного запису даних у файл

import fs from 'fs/promises';

// Записуємо дані у файл 'output.txt'
(async () => {
  const data = 'Це дані, які ми записуємо у файл.';
  try {
    await fs.writeFile('output.txt', data, 'utf8');
    console.log('Дані успішно записані у файл.');
  } catch (err) {
    console.error('Помилка запису у файл:', err);
  }
})();

асинхронного додавання даних у кінець файлу

import fs from 'fs/promises';

// Додаємо дані до файлу 'output.txt'
(async () => {
  const data = 'Це дані, які ми додаємо до файлу.';
  try {
    await fs.appendFile('output.txt', data, 'utf8');
    console.log('Дані успішно додані до файлу.');
  } catch (err) {
    console.error('Помилка додавання даних до файлу:', err);
  }
})();

асинхронного перейменування або переміщення файлу чи каталогу

import fs from 'fs/promises';

// Перейменовуємо або переміщуємо файл чи каталог зі шляху 'oldfile.txt' до 'newfile.txt'
(async () => {
  try {
    await fs.rename('oldfile.txt', 'newfile.txt');
    console.log('Файл або каталог успішно перейменовано або переміщено.');
  } catch (err) {
    console.error('Помилка перейменування або переміщення:', err);
  }
})();

метод використовується для асинхронного видалення файлу

import fs from 'fs/promises';

// Видаляємо файл за шляхом 'file.txt'
(async () => {
  try {
    await fs.unlink('file.txt');
    console.log('Файл успішно видалено.');
  } catch (err) {
    console.error('Помилка видалення файлу:', err);
  }
})();

для асинхронного отримання списку файлів та каталогів у заданому каталозі.

import fs from 'fs/promises';

// Отримуємо список файлів і каталогів у поточному каталозі
(async () => {
  try {
    const files = await fs.readdir('.');
    console.log('Список файлів і каталогів:', files);
  } catch (err) {
    console.error('Помилка отримання списку файлів і каталогів:', err);
  }
})();

перевіряти наявність папок за допомогою цього методу

import fs from 'fs/promises';

// Перевіряємо доступність файлу або каталогу за вказаним шляхом
(async () => {
  const path = 'file.txt';
  try {
    await fs.access(path);
    console.log(`Файл або каталог '${path}' доступний.`);
  } catch (err) {
    if (err.code === 'ENOENT') {
      console.log(`Файл або каталог '${path}' не існує.`);
    } else {
      console.error(
        `Помилка перевірки доступності файлу або каталогу '${path}':`,
        err,
      );
    }
  }
})();

Бази даних

Одна з найпопулярніших нереляційних баз даних, яка зберігає дані у форматі документів, використовуючи JSON-подібні об'єкти. Це спростить наше знайомство із цією БД, оскільки вона працює із даними дуже подібно до того, як ви вже робили це в рамках курсу по фронтенду.

  • /sites/data/attic/node.js.1716035530.txt.gz
  • Последнее изменение: 2024/05/18 12:32
  • tro