Перейти к основному содержимому

Конфигурация

Базовые настройки приложения​

Каждое приложение, созданное в Netuno, имеет особые настройки, определяющие, как оно должно подключаться к базам данных, ключам доступа и другим фундаментальным параметрам.

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

Настройки вашего приложения централизованы в папке config, расположенной в корне проекта.

Путь по умолчанию: моё-приложение/config

Среды выполнения​

Внутри папки config файлы именуются в соответствии со средой, для которой они созданы. Netuno автоматически загружает только те файлы, которые соответствуют среде, выполняемой в данный момент:

  • Разработка: файлы с именем _development читаются только тогда, когда среда Netuno установлена как разработка.

  • Производство: файлы с именем _production читаются только тогда, когда среда Netuno установлена как производство.

Типы файлов конфигурации​

Для каждой среды можно использовать два типа файлов, которые работают вместе:

JSON​

  • _development.json
  • _production.json

Назначение: хранение статических определений и параметров.

Пример: размещение учётных данных базы данных, URL внешних API и фиксированных конфигураций.

JS​

  • _development.js
  • _production.js

Назначение: выполнение логики в момент загрузки конфигурации.

Пример: динамическое изменение конфигураций или выполнение начальных задач и обработки, необходимых до полного запуска приложения.

Определение общей среды​

Чтобы ваши приложения знали, какую конфигурацию использовать, нужно сообщить серверу Netuno, в каком «режиме» он работает. Эта глобальная конфигурация задаётся в одном файле в корне Netuno.

  1. Найдите файл глобальной конфигурации: Перейдите в корневую папку, где установлен Netuno. Найдите и откройте файл config.js.
  2. Найдите переменную среды: Внутри файла найдите свойство config.env.
  3. Задайте нужную среду: Измените значение переменной в соответствии со средой, которую хотите активировать.

Среда разработки​

Используется, пока вы программируете и тестируете на своей машине.

// В файле ./config.js в корне Netuno
config.env = 'development'

Производственная среда​

Используется, когда проект завершён и работает на официальном сервере для пользователей.

// В файле ./config.js в корне Netuno
config.env = 'production'

Другие среды (пользовательские)​

Netuno гибок и позволяет создавать собственные имена сред, например: test, homologation или staging.

// В файле ./config.js в корне Netuno
config.env = 'test'

Конфигурация приложения должна начинаться с _, иметь расширение .json, а также файл с расширением .js — оба для одной и той же среды.

Репозиторий Git​

При использовании Git для версионирования кода приложения крайне важно обеспечить безопасность данных.

Файлы конфигурации обычно содержат конфиденциальную информацию, например пароли к базам данных, ключи приватных API и т. п. Поэтому никогда не отправляйте реальные файлы конфигурации в репозиторий.

Чтобы пароли не утекли и при этом проект оставался документированным для других разработчиков, выполните два шага:

1. Скрыть реальные файлы​

В корне приложения откройте (или создайте) файл .gitignore. Добавьте пути к вашим .json-файлам конфигурации, чтобы Git полностью их игнорировал.

Пример того, что добавить в .gitignore:

config/_development.json
config/_production.json
config/_test.json

2. Пример файла конфигурации​

Создайте пример файла с данными, необходимыми новым разработчикам для лёгкой настройки проекта.

  • Перейдите в папку config/ вашего приложения.
  • Создайте файл пример.json.
  • Скопируйте в него структуру вашего _development.json, оставив только имена полей.

Вот как должен выглядеть ваш config/пример.json:

{
"database": {
"host": "ВСТАВЬТЕ_ХОСТ_ЗДЕСЬ",
"user": "ВАШ_ПОЛЬЗОВАТЕЛЬ",
"password": "ВАШ_ПАРОЛЬ"
}
}

Как получить доступ к конфигурациям в коде​

После определения переменных и ключей в файлах конфигурации (например, в _development.json) вам нужно будет использовать их в логике приложения — например, при создании сервиса, который подключается к API и нуждается в сохранённом токене доступа.

В Netuno к этим конфигурациям можно получить доступ через встроенный ресурс _app.

Как получить данные​

В любом коде, выполняемом сервером (например, в папке server/services/), используйте функцию _app.config() для получения значений из активного файла конфигурации.

Чтобы понять, как это связано, представьте, что в файле конфигурации (config/_development.json) вы определили следующее:

{
"имя": "Моё приложение",
"версия": 2
}

Чтобы получить значение ключа «имя» и вывести его в консоль (лог) сервера, вы бы использовали следующий код в вашем .js-сервисе:

// 1. Netuno идёт в JSON-файл, ищет ключ "имя" и берёт его значение.
// 2. Затем он сохраняет это значение в переменной JavaScript, которую мы назвали 'имяПриложения'.
let имяПриложения = _app.config().getString("имя");

// 3. Выводит содержимое нашей переменной в терминал Netuno: "Моё приложение"
_log.info(имяПриложения);

Пользовательские конфигурации​

Помимо стандартных конфигураций базы данных и сервера, вы можете создавать собственные переменные конфигурации.

Это очень полезно для определения бизнес-правил, например «максимальное количество элементов на странице» или «интервал отправки писем», без необходимости менять код приложения каждый раз, когда эти правила меняются.

Эти переменные хранятся внутри блока "settings" в ваших JSON-файлах конфигурации, таких как _development.json или _production.json.

Структура JSON и видимость (публичные и приватные)​

При создании конфигураций важно разделять то, что может видеть пользовательский интерфейс (фронтенд), и то, что должно оставаться защищённым только на сервере (бэкенд).

  • Приватные переменные: находятся внутри блока "settings". Доступ к ним есть только у сервера.
  • Публичные переменные: находятся внутри подблока "public". Они отправляются в пользовательский интерфейс (папку ui) административной области, например при разработке дашбордов.

Пример структуры вашего .json-файла:

{
...
"settings": {
"public": {
"элементовНаСтранице": 10
},
"интервалПисем": 10
}
}

Как получить доступ к конфигурациям в коде​

Способ получения этих данных зависит от того, где вы программируете:

1. На сервере / бэкенде (сервисы)

Чтобы получить доступ к общим или приватным конфигурациям, используйте ресурс _app.settings() в серверном коде (файлы .js в папке server).

// Обращается к приватной переменной "интервалПисем"
const интервалПисем = _app.settings().getInt("интервалПисем");

_log.info("Установленный интервал: " + интервалПисем);

2. В интерфейсе / фронтенде (UI)

При разработке интерфейса (файлы в папке ui) вы можете получить доступ ко всему, что определено внутри блока "public". Для этого используйте глобальный объект netuno.config.app.settings.

// Обращается к публичной переменной "элементовНаСтранице" во фронтенде
const элементовНаСтранице = netuno.config.app.settings.элементовНаСтранице;

console.log("Отображается " + элементовНаСтранице + " элементов в таблице.");

Заключение​

Система конфигураций Netuno обеспечивает гибкость и структурную безопасность вашего приложения. С её помощью можно:

  • Управлять несколькими средами: создавать и поддерживать различные контексты выполнения (разработка, производство и т. д.) с независимыми параметрами.
  • Настраивать переменные: использовать блок settings для добавления конфигураций, специфичных для вашего бизнеса.
  • Разделять ответственность: изолировать и защищать конфигурации, доступные только бэкенду, от тех, что должны быть доступны во фронтенде.