安装插件

安装 body 解析插件

koa 仅仅只提供最简单的功能,而不提供请求的body解析,所以我们需要一个解析body的插件。 所有的插件我们都可以在这里找到。

npm install koa-better-body -S

我们自己来写代码提示文件,在 node_modules/@types 目录下面新建 koa-better-body 文件夹,再在里面新建 index.d.ts

我为什么要把这个文件写在@types目录下,而不是在 tsconfig.json 里面重新增加一个 typeRoots 路径,是因为只有在@types目录下面才会被解析成模块。

假如我们不知道怎么写,我们首先安装一个同类型的插件,仿照着写。

npm i @types/koa-bodyparser -D

这样我们就可以仿照 koa-bodyparser 的代码提示文件写了。

插件的配置项具体是什么类型,在这里可以找到。

完成的文件如下

import * as Koa from 'koa';
import * as formidable from 'formidable';

declare module "koa"{
    interface Request {
        body: any,
        files: any,
        fields: any
    }
}

declare function bodyParser(opts? : {
    fields?: boolean | string,
    files?: boolean | string,
    multipart?: boolean,
    textLimit?: string,
    formLimit?: string,
    urlencodedLimit?: string,
    jsonLimit?: string,
    bufferLimit?: string,
    jsonStrict?: boolean,
    detectJSON?: () => any,
    strict?: boolean,
    onerror?: () => any,
    extendTypes?: Object,
    IncomingForm?: formidable.IncomingForm,
    handler?: GeneratorFunction,
    querystring?: Object,
    qs?: Object,
    delimiter?: string,
    sep?: string,
    buffer?: boolean
}): Koa.Middleware;

declare namespace bodyParser {}

export = bodyParser;

安装路由插件

以同样的方式,我们创建@types/koa-better-router/index.d.ts

我们可以仿照 koa-router 写,当然我们前提已经看完了 koa-better-router README.md 的 API。

Convert

当我们使用此刻的这些插件的时候,可能会抛出一个警告,所以我们需要 koa-convert 这个工具。

此时修改我们的 index.ts

运行起来,看一看。

Last updated