Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
node.js [2024/05/18 12:28] tro |
node.js [2024/06/22 09:30] (текущий) tro |
||
|---|---|---|---|
| Строка 3: | Строка 3: | ||
| * Починаючи установку, | * Починаючи установку, | ||
| * [[https:// | * [[https:// | ||
| - | ====== Налаштування ====== | ||
| - | |||
| - | ===== Версія node.js ===== | ||
| - | < | ||
| - | node --version | ||
| - | </ | ||
| - | ===== Версія NPM (пакетний менеджер) ===== | ||
| - | < | ||
| - | npm --version | ||
| - | </ | ||
| - | ===== Ініціалізація нового проекта ===== | ||
| - | < | ||
| - | npm init -y | ||
| - | </ | ||
| - | Ця команда створить файл package.json у корені вашого проєкту, | ||
| - | ===== Налаштування додаткові===== | ||
| - | Тепер необхідно виконати початкове налаштування і конфігурацію npm, встановивши ім' | ||
| - | Щоб встановити ім' | ||
| - | < | ||
| - | npm config set init.author.name " | ||
| - | </ | ||
| - | < | ||
| - | npm config set init.author.email " | ||
| - | </ | ||
| - | ===== Вказаня якою версію використовувати ===== | ||
| - | < | ||
| - | nwm use 20 | ||
| - | </ | ||
| - | |||
| - | ===== Встановлення залежностей ===== | ||
| - | Наступним кроком після ініціалізації проєкту в терміналі нам потрібно перейти до папки проєкту і встановити його залежності. | ||
| - | Папку node_modules ніколи не додають до системи контролю версій (не завантажують в репозиторій на github), у всіх розробників вона буде своя. Під час ініціалізації проєкту Vite було створено файл .gitignore, до якого додано правило, | ||
| - | < | ||
| - | npm install | ||
| - | </ | ||
| - | ===== Типи залежностей ===== | ||
| - | Залежностями проєкту деякі будуть використані у фінальному продукті, | ||
| - | Саме для цього команди **npm install** і **npm uninstall** мають два прапорці. | ||
| - | * --save — вказує, | ||
| - | * --save-dev — вказує, | ||
| - | Якщо не вибирати прапорець, | ||
| - | |||
| - | ===== Встановлення пакетів ===== | ||
| - | Залежність (npm пакет) — це різноманітні утиліти та бібліотеки, | ||
| - | NPM складається з трьох основних компонентів: | ||
| - | * Реєстр пакетів (registry) — велика загальнодоступна база даних інструментів розробки (пакетів). | ||
| - | * Сайт [[npmjs.com|npmjs.com]] — використовується для пошуку та ознайомлення з документацією пакетів. | ||
| - | * Інтерфейс командного рядка (CLI) — запускається з терміналу і надає набір команд для роботи з реєстром і пакетами. Дозволяє створювати скрипти для запуску в терміналі. | ||
| - | Команда npm install [package-name] або її короткий псевдонім npm i [package-name] встановить бібліотеку як залежність проєкту. | ||
| - | < | ||
| - | npm i validator | ||
| - | </ | ||
| - | ===== Видалення пакетів ===== | ||
| - | Крім того, що ми видалимо код, який використовує бібліотеку, | ||
| - | Ми можемо видалити будь-яку залежність командою npm uninstall [package-name] або її коротким псевдонімом npm r [package-name]. | ||
| - | < | ||
| - | npm uninstall validator | ||
| - | </ | ||
| - | ===== Термінали ===== | ||
| - | Краще використовувати **GitBush** | ||
| - | ====== Скрипти ====== | ||
| - | |||
| - | ===== Автоматизація виконання коду ===== | ||
| - | Досить незручно кожен раз, коли ми змінюємо код, виконувати JavaScript-код вручну та перезапускати сервер, | ||
| - | |||
| - | Встановіть їх як залежності розробки командою: | ||
| - | < | ||
| - | npm install --save-dev nodemon | ||
| - | </ | ||
| - | Nodemon - інструмент для розробки на Node.js, який дозволяє автоматично перезапускати сервер після змін у вихідних файлах. | ||
| - | |||
| - | |||
| - | Додайте скрипт у файлі package.json для запуску додатка: | ||
| - | < | ||
| - | " | ||
| - | " | ||
| - | } | ||
| - | </ | ||
| - | Тепер ви можете запускати ваш додаток за допомогою команди npm run dev | ||
| - | ====== Планіги для VSCode ====== | ||
| - | [[eslint_-_dozvoljaje_zadati_pevnij_stil_napisannja_kodu_dlja_vsijeji_komandi| ESLint - Лінтінг коду]] | ||
| - | ====== Модулі Node.js ====== | ||
| - | ===== path ===== | ||
| - | Модуль для роботи з шляхами до файлів під різні ОС. | ||
| - | ==== join ==== | ||
| - | Цей метод приймає аргументами рядки, які будуть перетворені у правильно форматований шлях базуючись на операційній системі, | ||
| - | < | ||
| - | import path from ' | ||
| - | |||
| - | // приклад для побудови шляху з його частин | ||
| - | const somePath = path.join(' | ||
| - | // somePath буде ' | ||
| - | |||
| - | // somePath буде ' | ||
| - | |||
| - | </ | ||
| - | ==== parse ==== | ||
| - | Дозволяє отримати інформацію по шляху, який був переданий аргументом | ||
| - | ===== fs ===== | ||
| - | дає нам можливості працювати із файлами та папками | ||
| - | * Синхронне виконання (погана швидкість) | ||
| - | < | ||
| - | import fs from ' | ||
| - | const fileContent = fs.readFileSync(' | ||
| - | </ | ||
| - | * Асинхронна через кол-бек функцію (максимальна швидкість але погане читання коду) | ||
| - | < | ||
| - | import fs from ' | ||
| - | |||
| - | fs.readFile(' | ||
| - | /* ваш код */ | ||
| - | }); | ||
| - | </ | ||
| - | * Асинхронна через проміси (середня швидкість але гарне читання коду) | ||
| - | < | ||
| - | import fs from ' | ||
| - | const fileContent = await fs.readFile(' | ||
| - | </ | ||
| - | ==== readFile ==== | ||
| - | асинхронного читання даних із файлу. | ||
| - | < | ||
| - | import fs from ' | ||
| - | |||
| - | (async () => { | ||
| - | try { | ||
| - | const data = await fs.readFile(' | ||
| - | console.log(' | ||
| - | } catch (err) { | ||
| - | console.error(' | ||
| - | } | ||
| - | })(); | ||
| - | |||
| - | </ | ||
| - | ==== writeFile ==== | ||
| - | асинхронного запису даних у файл | ||
| - | < | ||
| - | import fs from ' | ||
| - | |||
| - | // Записуємо дані у файл ' | ||
| - | (async () => { | ||
| - | const data = 'Це дані, які ми записуємо у файл.'; | ||
| - | try { | ||
| - | await fs.writeFile(' | ||
| - | console.log(' | ||
| - | } catch (err) { | ||
| - | console.error(' | ||
| - | } | ||
| - | })(); | ||
| - | |||
| - | </ | ||
| - | ==== appendFile ==== | ||
| - | | ||
| - | < | ||
| - | import fs from ' | ||
| - | |||
| - | // Додаємо дані до файлу ' | ||
| - | (async () => { | ||
| - | const data = 'Це дані, які ми додаємо до файлу.'; | ||
| - | try { | ||
| - | await fs.appendFile(' | ||
| - | console.log(' | ||
| - | } catch (err) { | ||
| - | console.error(' | ||
| - | } | ||
| - | })(); | ||
| - | |||
| - | </ | ||
| - | ==== rename ==== | ||
| - | асинхронного перейменування або переміщення файлу чи каталогу | ||
| - | < | ||
| - | import fs from ' | ||
| - | |||
| - | // Перейменовуємо або переміщуємо файл чи каталог зі шляху ' | ||
| - | (async () => { | ||
| - | try { | ||
| - | await fs.rename(' | ||
| - | console.log(' | ||
| - | } catch (err) { | ||
| - | console.error(' | ||
| - | } | ||
| - | })(); | ||
| - | |||
| - | </ | ||
| - | ==== unlink ==== | ||
| - | метод використовується для асинхронного видалення файлу | ||
| - | < | ||
| - | import fs from ' | ||
| - | |||
| - | // Видаляємо файл за шляхом ' | ||
| - | (async () => { | ||
| - | try { | ||
| - | await fs.unlink(' | ||
| - | console.log(' | ||
| - | } catch (err) { | ||
| - | console.error(' | ||
| - | } | ||
| - | })(); | ||
| - | |||
| - | </ | ||
| - | ==== readdir ==== | ||
| - | для асинхронного отримання списку файлів та каталогів у заданому каталозі. | ||
| - | < | ||
| - | import fs from ' | ||
| - | |||
| - | // Отримуємо список файлів і каталогів у поточному каталозі | ||
| - | (async () => { | ||
| - | try { | ||
| - | const files = await fs.readdir(' | ||
| - | console.log(' | ||
| - | } catch (err) { | ||
| - | console.error(' | ||
| - | } | ||
| - | })(); | ||
| - | |||
| - | </ | ||
| - | ==== access ==== | ||
| - | перевіряти наявність папок за допомогою цього методу | ||
| - | < | ||
| - | import fs from ' | ||
| - | |||
| - | // Перевіряємо доступність файлу або каталогу за вказаним шляхом | ||
| - | (async () => { | ||
| - | const path = ' | ||
| - | try { | ||
| - | await fs.access(path); | ||
| - | console.log(`Файл або каталог ' | ||
| - | } catch (err) { | ||
| - | if (err.code === ' | ||
| - | console.log(`Файл або каталог ' | ||
| - | } else { | ||
| - | console.error( | ||
| - | `Помилка перевірки доступності файлу або каталогу ' | ||
| - | err, | ||
| - | ); | ||
| - | } | ||
| - | } | ||
| - | })(); | ||
| - | |||
| - | </ | ||
| - | ====== Бази даних ====== | ||
| - | ===== MongoDB ===== | ||
| - | Одна з найпопулярніших нереляційних баз даних, яка зберігає дані у форматі документів, | ||
| + | * [[Налаштування node.js]] | ||
| + | * [[Скрипти node.js]] | ||
| + | * [[Операції з файловою системою в Node.js]] | ||
| + | * [[Операції з базами даних в Node.js]] | ||
| + | * [[Пагінація]] | ||
| + | * [[Feature flag - флаг функції або функціональний флаг]] | ||
| + | * [[Бібліотеки Node.js]] | ||
| + | * [[Deploy back server]] | ||