mysql - 如何在node.js中隐藏mysql数据库的连接详细信息?

标签 mysql node.js

我刚刚开始在 node.js 中使用 mysql,我正在设置我的 app.js 项目,并且我试图隐藏我的连接详细信息,例如我的 ip、用户名、密码和数据库名称。我不知道如何隐藏我的连接详细信息,所以这就是我来这里的原因。

我尝试在 .profile 中添加详细信息,但始终收到身份验证错误。但是,当我在常规 app.js 文件中包含这些相同的连接详细信息时,它可以正常工作并连接到数据库。

以下是我的 app.js 文件中显示的内容:

var connection = mysql.createConnection({
              host     : 'my.ip.address.info',
              user     : 'username',
              password : 'password',
              database : 'databaseName'
            });
console.log('Connected');
connection.connect();

我只是想隐藏我的连接详细信息,以便我的网站将来上线时不会被窥探。我知道将这些连接详细信息保留在我的 app.js 文件中并不是正确的做法,所以这就是我寻求帮助的原因!

最佳答案

您可以创建一个 .env 文件来设置环境变量,并使用 dotenv 包将它们显示在 process.env 中。

https://github.com/motdotla/dotenv#readme

创建一个文件并将其命名为 .env 并设置变量

host=my-ip-address-info,
user=username,
password=password,
database=databaseName

然后您可以像这样访问它们:

var connection = mysql.createConnection({
          host: process.env.host
          user: process.env.username
          password: process.env.password,
          database: process.env.database
        });

您必须使用类似的内容来启动您的应用

node -r dotenv/config your_script.js

或将以下内容添加到入口脚本的顶部

require('dotenv').config();

我更喜欢第一种方法,因为这些环境变量应该由您的主机提供商设置,因此代码中不需要 require 语句。

关于mysql - 如何在node.js中隐藏mysql数据库的连接详细信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57470659/

相关文章:

javascript - 包裹错误 : Cannot find module 'tslib'

node.js - npm install 不会安装 devDependencies

php - 从数据库中获取更多数据

php - 列 varchar 和关于索引或全文的问题?

arrays - 如何遍历数组并根据 PostgreSQL 查询的结果构造对象

javascript - Protractor 异步等待不是一个函数

mysql - 如何将 MS SQL 查询转换为 MySQL 查询

mysql - 修复意外存储为字符串的 MySQL JSON 数组

php - 将解析数据中的数组插入 MySQL

node.js - 尝试获取网站内容时请求被拒绝