Еще один интересный прием — диспетчеризация по имени файла.
В некоторых системах принято иметь не один файл с разными ключами для конфигурации, а разные файлы, относящиеся к разным средам. Например:
configs/
database.development.json
database.production.json
database.test.json
Где-то в исходниках должен быть код, который выбирает какой файл загружать. Ниже код использует диспетчеризацию по ключу:
import fs from 'fs'
const configFileNamesByEnv = {
development: 'database.development.json',
production: 'database.production.json',
test: 'database.test.json',
}
const filename = configFileNamesByEnv[env]
const raw = fs.readFileSync(filename)
const config = JSON.parse(raw)
Нетрудно заметить, что имея название среды запуска, можно составить подходящее имя файла. Так и сделаем:
const filename = `database.${env}.json`
const raw = fs.readFileSync(filename)
const config = JSON.parse(raw)
Код стал намного короче и больше не требует изменения при расширении.
Для полного доступа к курсу нужен базовый план
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.