在Express中设置环境变量
使用环境变量的目的
通过将代码中的文本从纯文本转换为环境变量,可以提高安全性。
通过将环境存储为变量,可以更方便地进行定制。
①关于安全性
如果直接在代码中写入诸如API密钥等重要信息,上传到GitHub时将会完全暴露出来。
关于定制化程度
当连接Mongoose到MongoDB时
const mongoose = require('mongoose')
mongoose.connect('mongodb=//localhost:27017/task-manager-api', {
useNewUrlParser: true,
useUnifiedTopology: true,
useFindAndModify: false
});
如果继续保持这样,“’mongodb=//localhost:27017/task-manager-api’”将继续连接到本地环境的MongoDB。
无论在除了本地环境之外的部署中,都会继续连接到本地的MongoDB。
准备创建环境变量
└── App
├── config //環境を保存するフォルダ
| └── dev.env //環境変数として認識されるファイル名
|
当在Git上推送时,应将config文件添加到.gitignore中。
“dev.env”的配置
使用npm包”env-cmd”来使用环境变量。
以本地化的方式将以下内容转换为中文,只需要一个选项:
在终端中运行命令 npm i env-cmd
直接安装。
在「package.json」中进行更改,向“scripts”部分添加内容。
"scripts": {
"start": "node src/index.js", //メインプログラムが書いているファイルへのパス
"dev": "env-cmd -f ./config/dev.env nodemon src/index.js" //環境を書いたファイルへのパスと、メインプログラムを動かす時のコード
},
※これで、ターミナルに「npm run dev」と入力するとアプリをスタートさせることができるようになる。
设置环境变量
「dev.env」的设置
1. 端口号
2. 与MongoDB的连接
3. 需要保密的API密钥
将这三个设为环境变量。
PORT=3010
MONGODB_URL=mongodb://127.0.0.1:27017/task-manager-api
JWT_SECRET=thisisaseacretformyapp
・在代码中的设置
调用环境变量可以使用“process.env.(环境变量)”
将原本的「port = 3010」修改为「port = process.env.PORT」。
②与MongoDB的连接
将原来的”mongoose.connect(‘mongodb=//localhost:27017/task-manager-api’, {…})”修改为”mongoose.connect(process.env.MONGODB_URL, {…})”
只需要一个选项:将以下内容以中文进行转述:
③需要保密的API密钥
将原先的“thisisaseacretformyapp”更改为“process.env.JWT_SECRET”。