Назад | Перейти на главную страницу

Куда мне записывать учетные данные базы данных в приложении node.js?

Я развертываю свое приложение node.js, основанное на Ghost, в Google Compute Engine. Однако я не уверен, правильно ли записывать учетные данные базы данных в config.js.

В config.js файл выглядит примерно так:

...
'production': {
    url: 'http://127.0.0.1:2368',
    database: {
        client: 'mysql',
        connection: {
            host     : '127.0.0.1',
            user     : 'root',
            password : 'root',
            database : 'ghost',
            charset  : 'utf8'
        }
    },
    server: {
        host: '127.0.0.1',
        port: '2368'
    },
},...

Однако это включает учетные данные базы данных, жестко закодированные в config.js. Я не уверен, достаточно ли это безопасно в производственной среде.

Стоит ли мне устанавливать учетные данные с использованием переменных среды из process.env.xxx (например. process.env.DB_USER)? В таком случае, как лучше всего записать эти переменные среды в файл и запустить приложение с конфигурацией?

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

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

С помощью Node вы также можете использовать модуль dotenv, чтобы упростить настройку переменных env во время разработки. Видеть: