はじめに
Node.jsでパスワードや環境変数などを扱うとき、process.env
を使いますよね。
process.env
についてきちんと理解していなかったので整理しました。
環境変数とは
お使いのPCがMac/Linuxの場合、下記bashコマンドでPCの環境変数が見れます。
$ ENV
上記結果と、下記結果は同じものになります。
index.js
console.log(process.env)
$ node index.js
process.envの使い方
dotenv
をインストールしたあと、.env
ファイルを作ってその中に独自の環境変数を宣言することができます。
$ yarn add -D dotenv
..env
TEST_VARIABLE=hello!!!
index.js
require('dotenv').config();
console.log(process.env.TEST_VARIABLE)
$ node index.js
hello!!!
環境変数の上書き
先ほどの.env
の中で宣言した環境変数は、下記のように上書きすることができます。
$ TEST_VARIABLE=bye!!! node index.js
bye!!!
$ export TEST_VARIABLE=byebye!!!
$ node index.js
byebye!!!
クライアントサイドでの環境変数
今回説明したのは、当然ながらサーバーサイド、つまり特定された環境下における環境変数の設定方法です。
なので、このやり方ではReactやVueなど、他人のデバイス上でコードが動いているクライアントサイドSPAでの環境変数を設定することはできません。
クライアントサイドで環境変数を指定する方法はもちろん存在しますが、APIのクレデンシャルなど秘匿情報は扱うべきではありません。コードを解析すれば分かってしまうからです。
クレデンシャルを扱うにしても、漏れても良いように権限を絞っておくべきです。
基本的には環境変数はサーバーサイドで扱うことを覚えておきましょう。