Features
1、支持了自定义的 web 参数装饰器
在 Web 场景下,我们已经有 @Query
,@Body
等参数装饰器,但是用于依旧有自定义的需求,如果这个时候通过现有的参数装饰器去定义会较为繁琐。
新版本提供了一个快速定义装饰器的能力,从而可以快速获取 ctx 属性。
import { createRequestParamDecorator } from '@midwayjs/core';
// 实现装饰器
export const Token = createRequestParamDecorator(ctx => {
return ctx.headers.token;
});
// 使用装饰器
export class UserController {
async invoke(@Token() token: string) {
console.log(token);
}
}
2、koa 组件新增 serverTimeout
配置
通过配置 serverTimeout
的值,可以定义服务端超时时间。
比如 1s 超时。
export const koa = {
serverTimeout: 1000,
}
3、多数据源时提供一个默认数据源的选项
原有 typeorm 等数据库,如果指定了多个数据源,会默认以最后一个配置的数据源作为默认数据源。
默认数据源在 InjectEntityModel
时可以不指定名字。
新版本可以通过显式的配置默认数据源,使得这个行为更可控。
比如:
// config.default.ts
export const typeorm = {
dataSource: {
abc: {},
bcd: {}
},
defaultDataSourceName: 'bcd',
}
这样在使用时,如果不指定 InjectEntityModel
的第二个参数,则会在 bcd
这个 dataSource 中查询 Entity。
3、新增了验证码组件
通过新增的验证码组件,可以生成在登录中常见的图片,计算表达式等类型的验证码。
效果如下:
Bugfix
修复了一个 import 顺序不一致,导致主框架获取错误的情况。
比如:
import * as bull from '@midwayjs/bull';
import * as koa from '@midwayjs/koa';
@Configuration({
imports: [koa, bull]
})
export class MainConfiguration {}
由于内部初始化是使用 require 的属性,即使 imports 的顺序固定,实际 bull 的 application 还是会变为 mainApp,这个时候去引入中间件,都会加到 bull 上,而不是 koa 上。
其他的更新
- prometheus 支持用户定义 Histogram
- faas 调整了
triggerFunction
方法的参数 - 常态化依赖升级