Egg Config
配置管理常见方案
- 平台管理配置 启动时指定
应用构建时将当前环境配置放入包中,启动时指定配置。此种方案缺点在于无法一次构建多次部署,另外本地开发环境使用配置麻烦。 - 平台管理配置 环境变量传入
应用启动时将当前环境配置通过环境变量传入,虽然比较优雅,但缺点是框架对运维要求较高,需部署平台支持,同时开发环境也有痛点。 - 代码管理配置 配置即代码
代码中添加多个环境配置,应用启动时传入当前环境参数。缺点在于无法全局配置,而且必须修改代码。
Egg框架采用配置即代码的方案,配置变更应经过review后才能发布,应用可部署在多个环境,仅需指定运行环境。
Egg框架提供了强大且可配置的配置功能,可自动合并应用、插件、框架的配置,并按顺序覆盖,可根据环境维护不同的配置。
运行环境
Egg框架使用代码的方式配置当前应用的运行方式,Egg约定所有配置文件都存放在根目录下的config
文件夹下。
Egg框架内支持根据运行环境来加载配置,因此需定义多个不同运行环境的配置文件。
Egg框架中有两种指定运行环境的方式
- 通过配置文件
config/env
文件指定,config/env
文件一般会通过构建工具来生成。
例如:指定当前运行环境为线上生产环境prod
$ vim config/env
//config/env
prod
- 通过
EGG_SERVER_ENV
环境变量来指定运行环境
例如:生产环境下启动应用时指定环境变量为prod
$ EGG_SERVER_ENV=prod npm start
可使用app.config.env
获取应用当前的运行环境
console.log(app.config.env);
配置文件
指定环境变量后启动应用,此时会自动根据环境变量名称去寻找对应的配置文件,配置文件可分为两种类型:默认配置文件、环境配置文件
默认配置文件:
config/config.default.js
默认配置文件在所有环境中都会被加载环境配置文件:
config/config.{env}.js
例如:创建常用的环境配置文件
配置文件 | 描述 |
---|---|
config.local.js | 本地环境配置 |
config.dev.js | 开发环境配置 |
config.prod.js | 生产环境配置 |
config.unittest.js | 单元测试环境配置 |
环境配置文件会覆盖默认配置文件中同名配置项
配置写法
配置文件需返回一个Object对象,应用可将自身业务配置放到这里进行管理。配置文件的写法可分为三种
- 使用
module.exports
导入Object对象 - 使用
exports.key = value
导入键值对 - 使用
module.exports
传入appInfo
返回Object对象
$ vim config/config.dev.js
module.exports = appInfo => {return {}
};
内置的appInfo
对象是EggAppInfo
类的实例,appInfo
属性包括:
属性 | 描述 |
---|---|
appInfo.pkg | package.json |
appInfo.name | 应用程名称,同pkg.name。 |
appInfo.baseDir | 应用代码目录 |
appInfo.HOME | 用户家目录 |
appInfo.root | 应用根目录,仅在local和unittest环境下为baseDir,其它均为HOME。 |
获取配置
可使用app.config
获取所有的配置项,若在控制器、服务中可使用this.app.config
获取配置。
例如:自定义开发环境配置,配置字节跳动小程序所使用的参数。
$ vim config/env
dev
$ vim config/config.dev.js
'use strict';
module.exports = appInfo=>{return {bytedance:{microapp:{appId:"",appSecret:"",code2session:"https://developer.toutiao.com/api/apps/jscode2session"}}};
};
http://www.taodudu.cc/news/show-4485310.html
相关文章:
- egg(一):创建一个egg项目
- egg-sequelize使用教程
- linux egg,Ubuntu下egg文件的安装与制作
- Egg CURL
- egg html模板,egg+vue服务端渲染模板项目介绍
- electron-egg使用
- Egg简介
- egg 操作数据库
- egg框架的使用
- Egg
- egg安装
- egg简单的使用
- python egg_Python的egg包
- python egg_python egg 简介
- egg介绍及入门
- egg框架
- Egg的简单使用
- Node.js中的egg入门、egg路由、egg控制器、egg服务、egg中间件
- egg入门指引,你绝对用得到
- eggjs 怎么使用 egg-jwt 实现 token 解析?
- gitlab添加邮箱设置
- DEDECMS自定义表单发送到邮箱
- android 邮箱格式设置,Android对邮箱格式的验证
- PHP实现数字金额轻松转成中文繁体大写
- 32:汉字表示的大写数字金额
- Oracle实现金额小写转大写函数
- 阿拉伯数字转换为中文大写数字
- oracle里存储函数将金额数字转换成大写
- 人民币大写在线转换工具
- PHP实现阿拉伯数字转中文大写
Egg Config相关推荐
- 明知 | TypeScript 结合 egg.js 基本使用
小小又进入了学习状态,此时小小由于最近接触了js的相关内容,进而接触了一些ts相关的内容,所以小小本次主要学习的内容是ts. 安装相关依赖 这里安装两个依赖,分别为egg和ts 安装ts 这里需要确保 ...
- typescript egg mysql_Egg.js egg-mysql 连接MySQL 报 AppWorkerDiedError 错误
问题描述 > egg-bin dev [egg-ts-helper] create typings/app/controller/index.d.ts (3ms) [egg-ts-helper] ...
- egg.js 使用笔记
脚手架安装 1.安装 $ npm i egg-init -g $ egg-init egg-example --type=simple //egg提供的一款名为simple的模板 $ cd egg-e ...
- mysql多数据源_egg-mysql配置多数据源
//单个数据源client //多个数据源clients import { EggAppConfig, EggAppInfo, PowerPartial } from "egg"; ...
- Ubuntu安装Docker引擎和支持HTTPS的docker-registry服务
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://dgd2010.blog.51cto.com/1539422/1729858 虽然 ...
- 二、基础SpringBoot2.0.0M4项目目录讲解
本次开发环境为: 系统:Windows 10 10.0 JDK:JRE: 1.8.0_152-release-1136-b43 amd64 JVM: OpenJDK 64-Bit Server VM ...
- egg.js连接mysql数据库遇到的问题
最近在策划写一个博客采用前后端分离模式,前端使用vue后端使用egg.js,我也是刚开始学习egg.js,所以会将自己踩的坑都记录下来. 首先介绍下后端为什么采用egg.js吧,之前我是学习了koa2 ...
- egg 自学入门demo分享
目录 安装 项目 连接数据库 编写model 编写controller 添加路由 2018-08,本文适用于对egg有兴趣想要了解的同学 完整项目代码:https://github.com/NameH ...
- egg mysql 连表查询_Egg中使用Sequelize框架关联查询Mysql数据库
Sequelize视频教程_Eggjs仿小米商城企业级Nodejs项目实战视频教程: https://www.itying.com/goods-941.html 一.Sequelize简介 前面的章节 ...
最新文章
- 了解一下:机器学习性能优化的6个指标
- ds18b20温度转换指令_DS18B20温度传感器(附代码并浅谈与或运算)
- IcbcDaemon.exe是什么东西啊?
- Office Outlook 2007连接Exchange 2007图示(POP3IMAP)
- 马云的经典语录(转载)
- mysql 堆表_Mysql聚集索引和非聚集索引(堆组织表和索引组织表)
- C根据输入的城市坐标求各城市间的距离
- 第一章 SQL命令 ALTER TABLE(一)
- 三角函数曲线(含具体分析过程)
- 【Visual C++】游戏开发笔记四十 浅墨DirectX教程之八 绘制真实质感的三维世界 光照与材质专场
- X11 关闭屏幕保护
- 文献精读丨GWAS+TRN多组学方法揭示小麦穗发育调控过程
- 打开word时提示需要安装包gaozhi.msi
- Autolabor Simulator激光雷达导航与避障(模拟平台)
- Oracle之唯一性约束(UNIQUE Constraint)用法详解
- 企业级JAVA快速开发平台, 内置代码生成器 - JavaFast快速开发平台
- 里约奥运会:美国运动员训练都用了哪些“高科技武器”?
- Win10查看回收站清空超过1万个文件,占用资源高造成系统卡死,删除失败
- TBox、ECall、BCall、ICall简介及之间的关系
- pyplot中的subplot函数说明