我应该在 Node.js 应用程序中的哪里写入数据库凭据?

Bla*_*ard 6 configuration database node.js

我正在 Google Compute Engine 上部署基于 Ghost 的 Node.js 应用程序。但是,我不确定将我的数据库凭据写入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'
    },
},...
Run Code Online (Sandbox Code Playgroud)

但是,这包括硬编码在config.js. 我不确定这在生产中是否足够安全。

process.env.xxx我应该更好地使用(例如)中的环境变量设置凭据吗process.env.DB_USER?在这种情况下,将这些环境变量写入文件并使用配置运行应用程序的最佳方法是什么?

小智 4

您绝对不应该将凭据放入任何发送到源代码存储库的文件中。

通常所做的是使用通过托管平台的控制面板设置的环境变量来获得最简单的解决方案,或者您可以使用 etcd 等工具来获得更灵活的解决方案。看:

通过 Node,您还可以使用 dotenv 模块,以便在开发过程中更轻松地设置环境变量。看: