ホームページ >ウェブフロントエンド >jsチュートリアル >Node を使用してファイルを構成する方法 (詳細なチュートリアル)

Node を使用してファイルを構成する方法 (詳細なチュートリアル)

亚连
亚连オリジナル
2018-06-14 11:34:232461ブラウズ

この記事では、Node のさまざまな環境での構成ファイルの使用に関する関連情報を主に紹介し、サンプル コードを通じて詳細に紹介します。この記事は、学習や仕事に必要な学習に役立ちます。以下を読んで一緒に学びましょう。

はじめに

Node.js を使用して完全なプロジェクトを作成する場合、プログラムをさまざまな環境で実行できるように、プログラム内でいくつかの構成可能な変数が必要になることがよくあります。ご存知のとおり、実際にはプロジェクトには複数の変数が含まれます。異なる環境では、一部の構成が異なります。開発効率を向上させるために、異なる環境で異なる構成を呼び出すにはどうすればよいですか?以下では多くを語る必要はありません。詳細な紹介を見てみましょう。

1. config-lite モジュール

まず、構成モジュール config-lite を導入し、コマンド npm i config-lite --save を使用してインストールします。

通常、環境ごとに異なる設定ファイルに設定を書き込みます。Node プロジェクトの下に新しい設定ディレクトリを作成し、異なる環境用に新しい設定ファイルを作成します。ここでは「開発」と「運用」の 2 つの環境を使用します。操作方法を例を挙げて説明します。

開発環境では、config ディレクトリに test.js とdefault.js という 2 つの新しいファイルが作成されます。実稼働マシンの構成は実稼働環境で作成する必要があるのに、なぜ実稼働マシンの構成ファイルがないのか疑問に思われるかもしれません。

test.js 設定ファイルに次のコードを書きます (追記: ここでは例として mysql の設定を示します):

// test.js
module.exports = {
 mysql : {
 host: "localhost",
 user: "lupeng",
 password: "080910",
 database: "b1imd"
 }
};

default.js にセッション設定などのいくつかのデフォルト設定ファイルを書き込みます。

// default.js
module.exports = {
 mysql : {
 host: "10.20.141.220",
 user: "lupeng",
 password: "123456",
 database: "b1imd"
 },
 session: {
 secret: 'keyboard cat',
 resave: false,
 saveUninitialized: true,
 cookie: {
  maxAge: 1000*60*60
 }
 }
};

さて、設定ファイルが書かれたけど、どうやって使うの?ここでは config-lite モジュールを使用します。このモジュールは環境変数に基づいてさまざまな構成ファイルを選択するため、使用する前に package.json の起動コマンドを変更する必要があります:

"scripts": {
 "start": "NODE_ENV=production supervisor --harmony -i views/ ./bin/www",
 "test": "NODE_ENV=test supervisor --harmony -i views/ ./bin/www"
 },

ご覧のとおり、上記には 2 つの起動コマンドがあります。コマンドは、1 つは運用マシン用であり、NODE_ENV=production を設定し、もう 1 つはテスト マシン用で、npm test を使用して開始する場合に設定します。プロジェクトでは、config-lite が test.js の設定を取得し、default.js の設定とマージします。同じオブジェクトがある場合、default.js の設定は上書きされます。上記の例にはすべて mysql オブジェクトがあるため、ここでは test.js のオブジェクトが優先されます。 NODE_ENV=production,一条是针对测试机,设置了NODE_ENV=test,当我们使用npm test启动项目的时候,config-lite会去抓取test.js配置,并且会与default.js里配置去合并,如果有相同的对象,会覆盖default.js里的配置。如上例子都有mysql的对象,那么这里会以test.js里的对象为准。

好了,下面来介绍一下如何在项目中使用config-lite模块,在app.js里代码如下:

// 省略...
var config = require('config-lite')(__dirname);
// 省略...
app.use(session(config.session));
console.log("mysql服务器:" + config.mysql.host); // display mysql-config
// 省略...

引入之后,可以直接使用配置文件中的配置对象。

2. 生产环境

那么在生产环境中,如何使用呢?上面已经介绍了config-lite基本原理以及用法,在生产环境的时候,我们只需要在生产机环境中config目录下新建production.js文件,然后使用启动命令npm start即可。

为了避免测试环境以及生产坏境配置文件混淆,可以通过.gitignore文件忽略配置文件,添加如下:

# config
config/*
!config/default.*

这样,git会忽略除了default.js之外的配置文件,在本地开发环境中,可以创建多个配置文件测试使用,只需设置对应的环境变量即可。需要注意的是环境变量名需同配置文件名一样。

3. windows环境

也许你是一个多系统环境开发者,可能同时在Linux和windows环境下开发,由于windows下设置环境的变量的语法不太一样,所以可以在package.json启动命令中再加上两句,如下:

"scripts": {
 "start": "NODE_ENV=production supervisor --harmony -i views/ ./bin/www",
 "test": "NODE_ENV=test supervisor --harmony -i views/ ./bin/www",
 "winStart": "SET NODE_ENV=production&&supervisor --harmony -i views/ ./bin/www",
 "winTest": "SET NODE_ENV=test&&supervisor --harmony -i views/ ./bin/www" 
 }

这样,如果部署在windows环境下,在config目录下新建production.js配置文件,启动命令npm winStart;

それでは、プロジェクトで config-lite モジュールを使用する方法を紹介しましょう。 app.js のコードは次のとおりです。

rrreee

導入後は、構成ファイル内の構成オブジェクトを直接使用できます。

2. 実稼働環境

それでは、実稼働環境でどのように使用するのでしょうか? config-lite の基本原理と使用法は上で紹介しました。実稼働環境では、実稼働マシン環境の config ディレクトリに新しいproduction.js ファイルを作成し、起動コマンド npm start を使用するだけです。

テスト環境と運用環境の設定ファイルの間の混乱を避けるために、.gitignore ファイルを使用して設定ファイルを無視し、以下を追加できます:

rrreeeこのようにして、git はdefault.js 以外の設定ファイルを無視します。ローカル開発環境では、対応する環境変数を設定するだけで、テストおよび使用用に複数の構成ファイルを作成できます。環境変数名は設定ファイル名と同じである必要があることに注意してください。

🎜🎜3. Windows 環境🎜🎜🎜🎜おそらく、あなたはマルチシステム環境の開発者であり、Linux 環境と Windows 環境で同時に開発する可能性があります。これは、Windows では環境変数を設定するための構文が異なるためです。次のように、json 起動コマンドに 2 つの文を追加します: 🎜rrreee🎜 この方法で、Windows 環境にデプロイする場合は、config ディレクトリに新しいproduction.js 構成ファイルを作成し、コマンド npm を開始します。 winStart; Linux または Unix のような環境にデプロイされている場合は、production.js を作成してコマンド npm start を開始することもできます。 🎜🎜上記は私があなたのためにまとめたものです。 🎜🎜関連記事: 🎜🎜🎜React Native Flexbox レイアウトの詳細な解釈🎜🎜🎜🎜 vue 単一ファイルの参照パスの方法は何ですか? 🎜🎜🎜🎜weex での webpack.config.js の変換の詳細🎜🎜

以上がNode を使用してファイルを構成する方法 (詳細なチュートリアル)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。