落地的橙子 發表於 2020-5-11 23:25:00

Node.js第八篇:Node.js中配置文件管理-Config包的使用

<h2 id="基本使用">基本使用</h2>
<p>在程序部署过程中,不同的环境(生产环境、开发环境)程序的一些配置参数不同,比如数据库信息配置。</p>
<p>对于配置的参数,我们通常使用配置文件管理。</p>
<p>在nodejs中,可以使用第三方模块config模块管理操作配置文件。</p>
<blockquote>
<p><strong>config模块的作用</strong></p>
</blockquote>
<p>允许开发人员将不同运行环境下的应用配置信息抽离到单独的文件中,模块内部自动判断当前应用的运行环境(环境变量配置的-<strong>NODE_ENV</strong>的值),并读取对应的配置信息,极大提供应用配置信息的维护成本,避免了当运行环境重复的多次切换时,手动到项目代码中修改配置信息。</p>
<blockquote>
<p><strong>使用步骤</strong></p>
</blockquote>
<ol>
<li>使用<code>npm install config</code>命令下载模块</li>
<li>在项目的根目录下新建config文件夹</li>
<li>在config文件夹下新建default.json、development.json、production.json文件</li>
<li>在项目中通过require方法,将模块导入程序中</li>
<li>使用模块内部提供的<code>get</code>方法获取配置信息</li>
</ol>
<blockquote>
<p><strong>代码示例:</strong></p>
</blockquote>
<p>default.json</p>
<pre><code class="language-json">{
"title":"管理系统"
}
</code></pre>
<p>production.json</p>
<pre><code class="language-json">{
"title":"管理系统-生产环境"
}
</code></pre>
<p>development.json</p>
<pre><code class="language-json">{
"title":"管理系统-开发环境",
   "db": {
    "user":"root",
    "pwd": "root",
    "host":"127.0.0.1",
    "port":28888,
    "datasource": "myblog"
}
}
</code></pre>
<p>app.js</p>
<pre><code class="language-js">const config = require('config')
const title = config.get('title')
console.log(title)
const host = config.get('db.host')
console.log(host)
console.log(process.env.NODE_ENV)
</code></pre>
<p>输出结果</p>
<pre><code>管理系统-开发环境
127.0.0.1
development
</code></pre>
<h2 id="扩展">扩展</h2>
<p>在实际开发中,对于一些敏感配置信息(如:数据库登录密码),我们一般不会选择明文写在配置文件中,而是配置在系统变量中。操作步骤如下</p>
<ol>
<li>
<p>在config文件夹中建立<code>custom-environment-variables.json</code>文件。</p>
</li>
<li>
<p>配置项属性的值填写系统环境变量的名字</p>
</li>
<li>
<p>项目运行时config模块查找系统环境变量,并读取其值作为配置项的值。</p>
</li>
</ol>
<p><strong>custom-environment-variables.json</strong>文件</p>
<p><img src="https://oscimg.oschina.net/oscnet/up-afbc43deaa4ed0d3223e96e4c5ef445378b.png" alt="" loading="lazy"></p>
<pre><code>{
"db": {
   "pwd": "MYBLOGDB_PWD"
}
}
</code></pre>
<p>app.js</p>
<pre><code class="language-js">const config = require('config')
console.log(process.env.NODE_ENV)
console.log(config.get('db.pwd'))
</code></pre>
<p>输出结果:</p>
<pre><code>development
123456
</code></pre><br><br>
来源:https://www.cnblogs.com/lpl666/p/12873034.html
頁: [1]
查看完整版本: Node.js第八篇:Node.js中配置文件管理-Config包的使用