koa-body 处理请求遇到的问题记录

    最近有个上传并解析excel文件的需求,后端使用的是 koa2 框架,就去找了下,选用了好评如潮的 koa-body 插件来做上传功能,js-xlsx 用来处理解析excel , 参考:

https://segmentfault.com/a/1190000015943339
https://blog.csdn.net/qq_24078843/article/details/76419248
https://segmentfault.com/a/1190000004395728#articleHeader5

    参照前人的经验,写好了demo,用 curl -X POST http://127.0.0.1:6666/upload -F 'file=@C:\Users\my\Desktop\1.xlsx' -b 1.txt 命令验证可以完美处理。






    但是发现之前写的 DELETE 方法请求却出错了,用 ctx.request.body 无法接收到前端数据了,这接口我啥也没改呀,那就是在接口入口的公共部分出的问题了,由于引用了 koa-body ,在入口处新增了

app.use(koaBody({
    multipart: true,
    formidable: {
        maxFileSize: 200*1024*1024    // 设置上传文件大小最大限制,默认2M
    }
}));

想来就是这个的毛病了,到源码出处一看 https://github.com/dlau/koa-body,明确有配置说明

 strict {Boolean} If enabled, don't parse GET, HEAD, DELETE requests, default true

    GET, HEAD, DELETE 请求方法没有在 request.body 中定义,但是不排除在其他实例当中是支持的,因此,只需在原有配置上加上 strict : false ,如下:

app.use(koaBody({
    multipart: true,
    strict  : false,  //如果为true,不解析GET,HEAD,DELETE请求
    formidable: {
        maxFileSize: 200*1024*1024    // 设置上传文件大小最大限制,默认2M
    }
}));

    再重新运行,好了,对整体项目并没有影响了,因此,在使用一个新的插件的过程的时候,最好还是要去官网看看,毕竟,别人写的也只是解决自身问题的一部分用法,想要更全面的,还得去官网看。

你可能感兴趣的:(js)