oak最新版本的中间件RouterMiddleware怎么写,哪里有例子,谢谢

oak最新版本的中间件RouterMiddleware怎么写,哪里有例子,谢谢

之前代码如下:

const UserLoginCheck: RouterMiddleware = async (ctx, next) => {
  try {
        ctx.response.status = Status.Unauthorized;
        ctx.state.result = "-------";
  } catch (e) {
    SaveAccessLogError(ctx, e);
  }
};
router.post("/login", UserLoginCheck, CreateToken, (ctx) => {
  console.log(ctx.state.curUser.username, "创建Token成功");
});

现在OAK更新到最新版本后报错,这是一个什么错误?
20211231100723_22035 - 副本

- const UserLoginCheck: RouterMiddleware = async (ctx, next) => {
+ const UserLoginCheck: RouterMiddleware<"/login"> = async (ctx, next) => {

恶补了一下TS的基本功,按照你的思路解决我的问题,谢谢

参考下这项目的中间件写法:

不建议用oak,选有 DI的框架

什么是DI

推荐个DI框架?

那你推荐个链接地址呗。目前我看就Oak星星最高

fresh 已经超过 oak 了

1 个赞

开发一个前后端分离的系统,没必要用DI、fresh框架了吧

fresh和Oak不是一个东西呀,我昨天用了fresh,他类似前端蚂蚁的Umijs,是写全栈的,既有路由又有页面。
fresh和 aleph.js一样是全栈框架,而Oak是写路由的中间件等等,单独的接口后端,可以前后端分离。

最新的oak需要给Middleware加一个泛型