Рубрики
Uncategorized

Управление несколькими средами в node.js с использованием конфигурации узла

Этот пост впервые опубликован в PoopCode. В этом уроке давайте посмотрим, как управлять несколькими средами … Tagged с JavaScript, NPM, DevOps.

Этот пост впервые опубликован в PoopCode Анкет

В этом уроке давайте посмотрим, как управлять несколькими средами в node.js с помощью конфигурации узла. В бэкэнд -проектах очень важно управлять несколькими средами, когда вы приложения достигают уровня производства.

Node Config — это сладкий маленький пакет NPM, который позволяет вам определить набор параметров по умолчанию и расширять их для различных среду развертывания (разработка, QA, постановка, производство и т. Д.).

Конфигурации хранятся в файлах конфигурации (JSON или YAML) в вашем приложении и могут быть переопределены и расширены переменными среды, параметров командной строки или внешними источниками.

Нам нужно два пакета NPM, чтобы сделать эту работу, конфигурацию и Cross Env. Cross-ENV позволяет легко запустить единую команду, не беспокоясь о настройке или правильном использовании переменной среды для платформы.

Давайте добавим эти пакеты в файл package.json.

 "dependencies": {
   ....
    "config": "^3.3.1"
  },
  "devDependencies": {
  ...
     "cross-env": "^7.0.2"
  }

Теперь давайте создадим файлы конфигурации. Внутри корневого каталога вашего проекта создайте каталог с именем config и создайте разные файлы JSON для каждой среды.

Каждый из этого файла будет содержать конфигурацию, связанную с каждой средой.

Например, Development.json будет иметь следующую конфигурацию.

{
    "app": {
        "port": 3352,
        "ip":"0.0.0.0",
        "https_port":9004
    },
    "db": "mongodb://devapp:pAsS2fsd@mongodb:27017/db"
}

В коде запуска приложения, в app.js или index.js, нам необходимо получить эту конфигурацию из пакета конфигурации. Пакет конфигурации ищет каталог конфигурации внутри вашего каталога проекта и считывает конфигурацию из файлов JSON или YAML.

const config = require("config");
​
const ip = config.get('app.ip');
const port = config.get('app.port');

Последним шагом является настройка запуска сценариев в package.json. Для каждой среды (другими словами для каждого файла конфигурации в Directory Config) мы можем создать сценарий запуска.

  "scripts": {
    "start:dev": "cross-env NODE_ENV=development node app.js",
    "start:qa": "cross-env NODE_ENV=qa node app.js",
    "start:prod": "cross-env NODE_ENV=production  node app.js",
    "start:demo": "cross-env NODE_ENV=demo node app.js"
  }

Вот и все. Теперь вы можете запустить свое приложение в разных средах, используя NPM Start: команда в вашей среде. На сервере разработки вы можете запустить приложение, используя NPM Start: Dev Script.

Оригинал: «https://dev.to/dedrevil/manage-multiple-environments-in-node-js-using-node-config-15cj»