nest框架官方文档中使用的是本地文件配置,也就是@nestjs/config
包。本地配置文件的好处是简单,但是对于一些更新较快的项目,难免会增加配置数据,曾经吃过不少配置文件的亏,在发布的时候很容易因为缺少配置文件直接把服务发挂了,或者直接在服务器上修改配置很容易修改错误导致服务发布失败。
集中的配置中心可以解决上面问题,但前提是搭建配置中心。因公司已经有了配置中心,所以直接使用即可。
但是会出现这样的问题:从配置中心获取数据库连接信息,再去连接会连接失败,因为在连接的时候还没有获取到配置信息。
先看代码再解释。
// main.ts
import {
NestFactory } from '@nestjs/core';
import {
ExpressAdapter, NestExpressApplication } from '@nestjs/platform-express';
import {
AppModule } from './app.module';
import {
MyLogger } from './libs/mylog.service';
import {
join } from 'path';
const Apollo = require('node-apollo');
const dotenv = require('dotenv');
async function bootstrap() {
try {
const root = join(__dirname, '../');
let envFile = join(root, '.env')
dotenv.config({
"path": envFile })
const {
APOLLO_APPID,
APOLLO_ENV,
APOLLO_HOST,