nodejs設定ファイルの処理方法の紹介
この記事では、nodejs 設定ファイルの処理方法を紹介します。必要な方は参考にしていただければ幸いです。
一般的に言えば、適切なプロジェクト構成は次の条件を満たす必要があります:
依存環境: 構成は特定の動作環境に依存します。対応するファイルの読み取り環境
#コード分離: 設定項目は設定ファイルだけでなく環境変数からも読み取れるため、設定項目は安全かつ機密になります。コードから
#使いやすい: 構成項目は、エントリの検索と巨大な構成ファイルの管理を容易にするために階層的に構成する必要があり、整理しやすいものである必要があります。 json
構造
さまざまなデプロイメント環境:開発、テスト環境と本番環境の違いにより構成が異なります
開発環境の違い: 開発者の開発環境構成が異なる場合、開発環境の構成項目も異なります。同じ構成ファイル 同じファイルの異なる内容を送信すると、簡単に Git の競合が発生し、Git 送信の更新に影響を与える可能性があります
安全な構成: 一部の構成はクリア テキストで保存すべきではありませんデータベース パスワードなどのプロジェクト コード内で
#ソリューション
さまざまなデプロイメント環境
さまざまなデプロイメント環境の場合、解決するのは比較的簡単です。対応する環境の構成ファイル (例:
- 開発環境構成:developmentConfig.js
- テスト環境構成:testConfig.js
- 実稼働環境の構成:productionConfig.js
- 構成を取得するための入り口として、別の
構成ファイルを作成します。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">module.exports = require(`./${process.env.NODE_ENV}Config.js`)</pre><div class="contentsignin">ログイン後にコピー</div></div>
設定を参照する場合は、
を引用するだけです。 次のようにコマンドを実行します:
異なる開発環境
異なる開発環境については、全員の
developmentConfig.js違うのですが、他の人の構成があなたの構成と同じである必要はありません。そうしないと、プロジェクトが難しくなりすぎます。 developmentConfig.js
を .gitignore
に追加してプロジェクトから分離し、readme.md## で
developmentConfig を構成する方法を説明します。 # .js。
developmentConfig.example.js
を作成し、ドキュメントの説明を
developmentConfig.js にコピーして、独自の開発構成に一致するように構成項目を変更することをお勧めします。
安全な構成
module.exports = { database: { user: process.env.user || 'root', password: process.env.password || 'yfwzx2019' } }
詳細シークレット メソッドは、私が環境変数を使用していることを知らないということです。例:
productionConfig.js
module.exports = { database: { user: 'root', password: 'yfwzx2019' } }
この構成では、データベース アカウントのパスワードが
root、yfwzx2019 であると認識され、最終的には環境変数の値によって実際に上書きされます。
次のように実行します。 #nodeindex.js --database_user=combine --database_password=tencent2019
もちろん、このように構成する前に、いくつかの処理を行う必要があります。
実際の操作
計画ができたので、まず次のnodejs設定モジュールを導入しましょう rc module
rc module
Use
rcモジュールは
appname を定義する必要があります。rc
モジュールは、appname
の名前に関連するできるだけ多くの場所から構成を読み取るため、選択されます。 。 これは、最初に rc 設定を実行する場合にも非常に簡単です:
var conf = require('rc')(appname,defaultConfigObject)
次に。次のリストは構成をマージし、優先順位は順番にマージされます。
コマンド ライン パラメーター: --user=root またはオブジェクト形式の割り当て --database.user =root
環境変数: 環境変数のプレフィックスは ${appname}_変数 appname_user=root オブジェクト形式 appname_database__user=root
指定したファイル:node Index.js --config ファイル
-
デフォルト設定ファイル:
./ ../ ../../ ../ から を検索します。 ./../ - およびその他のディレクトリ ${appname}rc
File
##$HOME/.${appname}rc
$HOME/.${アプリ名}/config
$HOME/.config/${アプリ名}
-
#$HOME/.config/${アプリ名}/config
##/etc/ ${appname}rc
/etc/${appname}/config
- 私はより直観的にするためのデモ
var conf = require('rc')('development', { port: 3000, }) console.log(JSON.stringify(conf)) // 1、直接运行 // node index.js // { port: 3000, _: [] } // 2、加上命令行参数 // node index.js --port=4000 --database.user=root // { port: 4000, _: [], database: { user: 'root' } } // 3、加上环境变量 // development_port=5000 development_database__password=yfwzx2019 node index.js // {"port":"5000","database":{"password":"yfwzx2019"},"_":[]} // 4、指定配置文件:根目录建一个配置文件 config.json, 内容如下 // { // "port": "6000" // } // node index.js --config=config.json // {"port":"6000","_":[],"config":"config.json","configs":["config.json"]} // 5、默认读取 ${appname}rc 文件:根目录见一个配置文件 .developmentrc 内容如下: // { // "port": 7000 // } // node index.js // {"port":7000,"_":[],"configs":[".developmentrc"],"config":".developmentrc"} // 6、 5 和4 一起运行 // node index.js --config=config.json // {"port":"6000","_":[],"config":"config.json","configs":[".developmentrc","config.json"]}
ログイン後にコピー具体操作
看了 rc 模块,可以满足我们的需求,我们可以配置公共的配置项,也可以隐秘的覆盖我们的配置项。
创建配置文件目录,添加配置文件
├── config │ ├── .developmentrc.example │ ├── .productionrc │ ├── .testrc │ └── index.js
ログイン後にコピー其中 .developmentrc.example 是开发环境的例子,然后开发人员参考建 .developmentrc 文件, index.js 是配置入口文件,内容如下:
let rc = require('rc') // 因为 rc 是从 process.cwd() 向上查找 .appnamerc 文件的,我们在根目录 config 文件夹里面的是找不到的,要改变工作路径到当前,再改回去 var originCwd = process.cwd() process.chdir(__dirname) var conf = rc(process.env.NODE_ENV || 'production', { // 默认的共同配置 origin: 'default', baseUrl: 'http://google.com/api', enableProxy: true, port: 3000, database: { user: 'root', password: 'yfwzx2019' } }) process.chdir(originCwd) module.exports = conf
ログイン後にコピー关于部署环境的不同,获取配置通过设置环境变量
NODE_ENV
来适配关于开发环境的不同,在
.gitignore
添加config/.developmentrc
,项目代码去掉开发环境配置.developmentrc
,开发人员根据.developmentrc.example
建直接的开发配置.developmentrc
关于安全地配置,通过添加环境变量覆盖默认值,可以安全隐秘地覆盖配置项,比如:
NODE_ENV=production node index.js --database.password=tencent2019
以上がnodejs設定ファイルの処理方法の紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









この記事では、NodeJS V8 エンジンのメモリとガベージ コレクター (GC) について詳しく説明します。

ノンブロッキングおよびイベント駆動に基づいて構築されたノード サービスには、メモリ消費量が少ないという利点があり、大量のネットワーク リクエストの処理に非常に適しています。大量のリクエストを前提として、「メモリ制御」に関する問題を考慮する必要があります。 1. V8 のガベージ コレクション メカニズムとメモリ制限 Js はガベージ コレクション マシンによって制御されます

ノード用の Docker イメージの選択は些細なことのように思えるかもしれませんが、イメージのサイズと潜在的な脆弱性は、CI/CD プロセスとセキュリティに大きな影響を与える可能性があります。では、最適な Node.js Docker イメージを選択するにはどうすればよいでしょうか?

ファイル モジュールは、ファイルの読み取り/書き込み/開く/閉じる/削除の追加など、基礎となるファイル操作をカプセル化したものです。ファイル モジュールの最大の特徴は、すべてのメソッドが **同期** と ** の 2 つのバージョンを提供することです。 asynchronous**、sync サフィックスが付いているメソッドはすべて同期メソッドであり、持たないメソッドはすべて異種メソッドです。

Node 19 が正式リリースされましたので、この記事では Node.js 19 の 6 つの主要な機能について詳しく説明します。

Node.js はどのように GC (ガベージ コレクション) を行うのでしょうか?次の記事で詳しく説明します。

イベント ループは Node.js の基本的な部分であり、メイン スレッドがブロックされていないことを確認することで非同期プログラミングが可能になります。イベント ループを理解することは、効率的なアプリケーションを構築するために重要です。次の記事では、Node のイベント ループについて詳しく説明します。お役に立てれば幸いです。

当初、JS はブラウザ側でのみ動作していたため、Unicode でエンコードされた文字列の処理は簡単でしたが、バイナリ文字列や非 Unicode エンコード文字列の処理は困難でした。バイナリは、コンピュータのビデオ/オーディオ/プログラム/ネットワーク パッケージの最低レベルのデータ形式です。
