(@halsp/mva)
MVA 框架 安装 @halsp/mva
以支持 MVA 功能
@halsp/mva
基于 @halsp/router
,@halsp/view
@halsp/mva
可以将路由返回结果,与模板自动对应并渲染返回
安装
npm i @halsp/mva
简单使用
在 startup.ts
中
import "@halsp/mva";
startup.useMva();
参考 @halsp/router
在根目录中(ts 项目为 src 目录)添加以下文件夹:
- 路由文件夹
actions
,并编写action
,也可为其他,但通过routerOptions.dir
参数指定 - 视图文件夹
views
,并编写相应视图模板,也可为其他,但通过viewOptions.dir
参数指定
配置参数
useMvc
接收一个可选配置参数
- viewOptions: 与
useView
参数相同 - routerOptions: 与
useRouter
参数相同 - codes: 指定状态码对应的模板
过滤器
基于 @halsp/filter
,提供了 ResultFilter
过滤器
在渲染视图之前会执行 onResultExecuting
,如果函数返回 false 将终止剩余 ResultFilter
过滤器执行,并取消渲染视图
在渲染视图之后执行 onResultExecuted
,可用于统一返回视图结果
创建过滤器
新建一个类并实现 ResultFilter
接口
import { ResultFilter } from "@halsp/mva";
class TestFilter implements ResultFilter {
onResultExecuted(ctx: Context): void | Promise<void> {
ctx.res.setHeader("result2", 2);
}
onResultExecuting(
ctx: Context
): boolean | void | Promise<void> | Promise<boolean> {
ctx.res.setHeader("result1", 1);
}
}
关于 TS
你需要在 tsconfig.json
中的 static
中添加 src/views
,让 sfra
编译命令能够将模板文件复制到编译目录
"static": [
"src/views" // 模板文件夹路径
]