在开发基于Node.js / Express的Web应用程序时,数据库是一个不可或缺的部分。然而,我们通常需要将敏感的数据库凭据(比如用户名、密码、主机名等)与代码分开存储,以提高安全性并避免意外泄露这些凭据。
本文将介绍一些存储数据库配置的最佳实践,包括使用环境变量、配置文件和第三方模块等方法。
使用环境变量
使用环境变量是存储敏感信息的最佳实践之一,因为它们可以轻松地从代码中分离出来,并在多个部署环境中保持一致。在Node.js中使用process.env对象可以访问环境变量。
首先,我们需要将数据库凭据保存在环境变量中。假设我们使用PostgreSQL作为我们的数据库解决方案,那么可以将以下代码添加到我们的环境变量中:
export PGUSER=myusername export PGPASSWORD=mypassword export PGHOST=myhost export PGDATABASE=mydatabase export PGPORT=myport
接下来,在我们的应用程序中,我们可以使用以下代码来获取这些凭据:
const { Pool } = require('pg'); const pool = new Pool({ user: process.env.PGUSER, password: process.env.PGPASSWORD, host: process.env.PGHOST, database: process.env.PGDATABASE, port: process.env.PGPORT, });
使用配置文件
另一种存储数据库凭据的方法是使用配置文件。这个配置文件可以是JSON、YAML或INI格式的文件。
我们可以将配置文件放在应用程序的根目录下,并命名为config.json:
-- -------------------- ---- ------- - ----- - ------- ------------- ----------- ------------- ------- --------- ----------- ------------- ------- -------- - -
然后,在我们的应用程序中,我们可以使用以下代码来获取这些凭据:
const config = require('./config.json'); const { Pool } = require('pg'); const pool = new Pool(config.db);
使用第三方模块
最后,我们可以使用第三方模块来存储数据库凭据。这些模块包括dotenv、node-config和nconf等等。
我们以dotenv为例,首先需要安装它:
npm install dotenv
然后,在我们的应用程序中,我们可以创建一个.env文件,并将数据库凭据添加到其中:
PGUSER=myusername PGPASSWORD=mypassword PGHOST=myhost PGDATABASE=mydatabase PGPORT=myport
接着,我们只需在我们的应用程序中调用dotenv.config()即可:
-- -------------------- ---- ------- --------------------------- ----- - ---- - - -------------- ----- ---- - --- ------ ----- ------------------- --------- ----------------------- ----- ------------------- --------- ----------------------- ----- ------------------- ---
总结
在本文中,我们介绍了在Node.js / Express应用程序中存储数据库配置的三种最佳实践方法:使用环境变量、配置文件和第三方模块。这些方法都可以将敏感信息与代码分离,提高安全性,并在多个部署环境中保持一致。
无论你选择哪种方法,都应该始终牢记保护你的数据库凭据,以确保你的Web应用程序的安全性和可靠性。
示例代码
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/26200