Uma 对象
框架向外暴露了 Uma 对象,方便在项目中随时调用
API
uma.env
当前运行环境,可以在入口文件中定义
// app.ts
import Uma from '@umajs/core'
import { Router } from '@umajs/router'
const uma = Uma.instance({
Router,
ROOT: __dirname,
env: process.argv.indexOf('production') > -1 ? 'production' : 'development',
})
uma.start(8058)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
uma.config
当前项目正在使用的配置信息,对 config
目录下的配置进行处理后得到
{
"plugin": {
"logger": true,
"model": true
},
"status": {
"_404": "[object, function]"
}
}
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
uma.options
初始化Uma
时传入的参数,参数包括
type TUmaOption = {
// 路由
Router: Function
// 代码根路径,用于加载代码
ROOT: string
// 运行环境
env?: 'development' | 'production' | string
// 配置文件夹路径
configPath?: string
// 需要拿到真实用户ip时设置为true
proxy?: boolean
subdomainOffset?: number
jsonpBody?: TJsonpBody
// 自带 koa-body 时的配置,不配置时 koa-body 中间件不生效
bodyParser?: bodyParser.IKoaBodyOptions
createServer?: (
cb: (
req: IncomingMessage | Http2ServerRequest,
res: ServerResponse | Http2ServerResponse
) => void
) => Server
beforeLoad?: (uma: Uma) => void
afterLoaded?: (uma: Uma) => void
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
uma.app
Koa Application
对象的实例,初始化时生成
uma.start(port: number = 8058)
Uma
启动方法,需要在初始化时调用,默认端口是 8058
// app.ts
// ===> 调用start方法启动项目
uma.start(8058)
1
2
3
2
3
beforeLoad, afterLoad
服务启动前后的钩子函数,传入当前 uma 实例
const uma = Uma.instance({
ROOT: __dirname,
beforeLoad(uma: Uma) {
// 服务开始启动
},
afterLoad(uma: Uma) {
// 服务启动完成
},
})
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
静态方法
instance
获取/实例化 Uma,实例化必须传参,获取实例化后的 Uma 不用传参
static instance(options?: TUmaOption): Uma;
1
获取运行环境
static get env(): string;
1
获取 app
static get app(): Koa<Koa.DefaultState, IContext>;
1
获取 server
static get server(): http.Server | https.Server;
1
options
获取运行 Uma 的参数
static get options(): TUmaOption;
1
config
获取所有 Uma 的配置
static get config(): TConfig;
1
获取插件配置
static get pluginConfig(): {
[pluginName: string]: boolean | import("../types/TPluginConfig").TPluginConfig;
};
1
2
3
2
3
获取生效的 plugin key
static get pluginKeys(): any[];
1
或者某个插件的参数
static pluginOptions(pluginName: string): object;
1
context
获取 context,可以对 context 进行扩展等。实例化之后就是我们使用的 ctx
static get context(): Koa.BaseContext & IContext;
1
controllersInfo
获取实例化之后的 controller 信息,包括 controller、route 等
static get controllersInfo(): IterableIterator<import("..").TControllerInfo>;
1