👾
Node.js
  • 🧑‍💻Full-Stack Web Developer
  • 📚Теорія
    • 1️⃣Основи Node.js
      • Вступ
      • Модулі Node.js
      • Запуск скриптів модулів в Node.js
      • Структура проєкту, експорт-імпорт, index.js як хаб
      • Модулі CommonJS
      • Модулі MJS
      • Модулі ECMAScript
      • Модулі NPM + базові модулі
      • Глобальні змінні
      • Робота з файлами
    • 2️⃣Консольні додатки
      • Створення консольних додатків
    • 3️⃣Фреймворк Express
      • Про Express
      • Nodemon і запуски скриптів
      • Postman
      • Проміжне ПЗ middleware
      • Передача даних на сервер
      • Роутінг
      • CRUD
      • Налаштування лінтера
    • 4️⃣REST API
      • Змінні оточення
      • Логування
      • REST
      • Методи HTTP
      • CORS
      • Формування URL для REST API
      • Контроллери відсутнього роуту і непередбачуваної помилки
      • Валідація даних Joi
      • Рефакторинг додатку за MVC архітектурою
      • Express автогенератор додатку
    • 5️⃣База даних Mongo.DB
      • Основи MongoDB
      • Налаштування Mongo Atlas
      • Встановлення локальної MongoDB і основні команди
    • 6️⃣ODM Mongoose
      • Mongoose
      • Порядок планування бекенд додатку
      • чорнетка
    • 7️⃣Автентифякація WJT
      • чорнетка
      • чорнетка 2
    • 8️⃣Файли
      • чернетка
    • 9️⃣тестування
      • чернетка
    • 🔟Page 14
      • імейли
    • чорнетка докер
    • чорнетка сокети
    • додаткові матеріали
    • 👷Практика
      • 1️⃣Page 4
      • 2️⃣Page 5
      • 3️⃣Page 6
      • 4️⃣Page 7
      • 5️⃣Page 8
      • 6️⃣Page 9
  • Про мене
    • Про мене
Powered by GitBook
On this page
  1. Теорія
  2. ODM Mongoose

Порядок планування бекенд додатку

Щоб нічого не забути та правильно побудувати структуру додатка потрібно спланувати порядок дій (алгоритм) розробки:

  1. Спочатку потрібно написати кістяк сервера і запустити його. Для перевірки вивести повідомлення, що сервер запущено. (У головному файлі підʼєднати модуль Еxpress, на його основі створити застосунок app, Запустити сервер за допомогою метода app.listen, прописати відловлення помилки 404, коли роут не знайдено і помилку сервера 500)

  2. в package.json у налаштуваннях скриптів створити щонайменше два скрипти для режимів production і development. Для режиму development налаштувати nodemon, який дозволяє автоматичне перезавантаження сервера після збереження змін в документах. Під час запуску скрипту в process.env.NODE_ENV записати значення в якому режимі працює сервер.

  "scripts": {
    "start": "cross-env NODE_ENV=production node ./index.js",
    "start:dev": "cross-env NODE_ENV=development nodemon ./index.js",
  },
  1. Налаштувати оточення env і завантаження відповідного env в залежності від NODE_ENV (Найкраще створити папку enviroments і туди помістити файли development.env і production.env в яких прописати змінні оточення, а також .gitignore в якому вказати *.env, для ігнорування синхронізації на GitHub тут же можна створити файл development.env.example в якому вказати зразок використовуваних змінних середовища)

  2. Прописати в оточенні (у файлі .env) URI на MongoDB. Наприклад її назвати так: MONGO_URL.

  3. У головоному файліпрописати, який файл буде вантадити змінні в енвайронмени

// ========ENVIROMENT======== //
const envPath =
  process.env.NODE_ENV === "production"
    ? "./enviroments/production.env"
    : "./enviroments/development.env";

dotenv.config({ path: envPath });
  1. Під'єднати в головному файлі програми базу MongoDB із використанням посилання на базу взятого з оточення.

  2. Під'єднати всі необхідні middleware (логгер, корс, експрессджсон )

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

  4. у файлі роутів прописати всі використовувані методи роутів. переважно get (2 шт), post, put(patch), delete

  5. підключити до файлу роутів відповідні контроллери

  6. в контролерах у обгортці асинзронної функції, яка відловлює помилку прописати функціонал асинхронної функції (шаблон)

  7. стоврити модель даних для бази (схема + модель) експортувати для використання в контролерах і мідлварах.

PreviousMongooseNextчорнетка

Last updated 1 year ago

📚
6️⃣