Node.jsの環境変数process.envについて詳しく解説

小云云
リリース: 2018-01-02 13:35:47
オリジナル
3552 人が閲覧しました

この記事では、Node.js の環境変数 process.env についていくつか紹介します。この記事は、node.js を学習または使用するすべての人にとって、学習の参考となる価値があります。編集者と一緒に学びましょう。

はじめに

ここ 2 日間、私は運用保守 GG とともに展開プロジェクトに取り組んできました。私たちが遭遇した問題の 1 つは、開発環境、UAT 環境、および製品環境に関する問題でした。

フロントエンドとバックエンドが分離されているため、開発および展開プロセス中にバックエンドインターフェイスのドメイン名を切り替えるという問題が発生します。午後中悩んでいろいろ情報を調べた結果、Nodeの環境変数 process.env を突き止めました。

以下は問題解決の記録です。これが理解できない人の助けになれば幸いです。多くを語る必要はありません。詳細な紹介を見てみましょう。

Node環境変数

まず、reactやvueでシングルページアプリケーションを開発している場合、設定ファイルのprocess.envについては皆さん馴染みがないと思います。

思い出せないですか? 黒い疑問符.jpg。

以下の内容です。

文字通り、これはこの env 属性であり、開発環境と運用環境が異なると設定が多少異なります。

さて、このいわゆるプロセスが何であるかを見てみましょう。

ドキュメント: http://nodejs.cn/api/process.html

公式説明: process オブジェクトは、関連情報を提供し、現在の Node.js プロセスを制御するグローバル (グローバル変数) です。オブジェクトとして、Node.js アプリケーションで常に使用できるため、require() を使用する必要はありません。

process は、実際には、nodejs のグローバル変数です。

そして、このいわゆるプロセスを通じて、いくつかの興味深いものを得ることができます。

しかし、今日は主に process.env について話します。

process.env

これは何ですか?

公式: process.env プロパティは、ユーザー環境情報を含むオブジェクトを返します。

ドキュメント: http://nodejs.cn/api/process.html#process_process_env

ああ、この属性はプロジェクトが実行されている環境に関する情報を返すことができることがわかりました。

何の役に立つの?

これは明白な使用シナリオであり、これに基づいてサーバーにラベルを付けることができます。この場合、さまざまな環境に応じていくつかの構成処理を実行できます。たとえば、sourceMap をオンにする、バックエンド インターフェイスのドメイン名を切り替えるなどです。

你是 dev 环境
他是 uat 环境
她是 product 环境。
ログイン後にコピー

環境変数の設定方法

環境ごとに環境変数を設定する方法について説明します。

Windows 構成

一時的な構成

cmd 環境で直接構成したり、環境変数を表示したり、環境変数を追加したり、環境変数を削除したりできます。

永続的な構成

(このコンピューター) を右クリック -> プロパティ (R) -> 詳細なシステム設定 -> 環境変数 (N)...

Linux 構成

環境の表示変数、環境変数の追加、環境変数の削除

#node中常用的到的环境变量是NODE_ENV,首先查看是否存在 
set NODE_ENV 
#如果不存在则添加环境变量 
set NODE_ENV=production 
#环境变量追加值 set 变量名=%变量名%;变量内容 
set path=%path%;C:\web;C:\Tools 
#某些时候需要删除环境变量 
set NODE_ENV=
ログイン後にコピー

永続的

設定ファイルの場所を開きます

#node中常用的到的环境变量是NODE_ENV,首先查看是否存在
echo $NODE_ENV
#如果不存在则添加环境变量
export NODE_ENV=production
#环境变量追加值
export path=$path:/home/download:/usr/local/
#某些时候需要删除环境变量
unset NODE_ENV
#某些时候需要显示所有的环境变量
env
ログイン後にコピー

環境変数を設定または変更するには、ファイルの最後に次のようなステートメントを追加します

# 所有用户都生效
vim /etc/profile
# 当前用户生效
vim ~/.bash_profile
ログイン後にコピー

最終変更後完了したら、次のステートメントを実行してシステムをリロードする必要があります

# 在文件末尾添加如下格式的环境变量
export path=$path:/home/download:/usr/local/
export NODE_ENV = product
ログイン後にコピー

環境によって引き起こされるバックエンド インターフェイスの変更の問題を解決します


この問題を解決したら、異なる環境のマシンに異なる NODE_ENV を設定できます。この分野は必ずしも確実ではありません。

他のNODE_ENV_NIZUISHUAIなどに変更することもでき、とにかくカスタマイズされています。


解決手順


1. コード内のバックエンドアドレス構成を変更します

非常に簡単で、process.env.NODE_ENV フィールドを使用して判断するだけです。 (プロセスはノードのグローバル属性です。直接使用してください)

2. Linux で環境変数を設定します

# 修改/etc/profile文件后
source /etc/profile
# 修改~/.bash_profile文件后
source ~/.bash_profile
ログイン後にコピー

これで、プロジェクトを楽しく開始できます。

最後に


なぜなら、私の現在のプロジェクトはReactサーバーサイドレンダリングだからです。したがって、バックエンド要求の転送は、処理のために nginx に引き渡されません。

通常の単一ページのアプリケーションと同様に、nginx は通常、リクエストの転送に使用されます。


関連する推奨事項:

フロントエンド環境変数を管理するより良い方法

Linux で環境変数を構成する方法の手順を共有する (図)

Linux で環境変数を構成する方法の手順を共有する(写真)

以上がNode.jsの環境変数process.envについて詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート