zoukankan      html  css  js  c++  java
  • koa-bodyparser返回413状态码的问题

    413 Request Entity Too Large(请求实体太大)

    数日前,我用 node.js 写的一个日志服务抛出了这个状态码……
    自己写的服务抛出了一个自己都不认识的状态码,这是最气的!(╯‵□′)╯︵┻━┻
    检查之下发现是 koa-bodyparser 这个中间件的配置不太对;
    因为这个中间件实在是太好用,装上后几乎什么都不用管,以至于我连她需要什么配置都不清楚,出了错之后才赶紧回去翻文档,
    虽然写的很简略,但官方文档中还是提到了

    formLimit: limit of the urlencoded body. If the body ends up being larger than this limit, a 413 error code is returned. Default is 56kb.
    jsonLimit: limit of the json body. Default is 1mb.
    textLimit: limit of the text body. Default is 1mb.

    这三个配置项就是对请求体进行限制的,一般情况下默认的限制就够用,但如果涉及到使用 form-data 方式进行富文本上传,可能就会出错了,因为 form-data 的默认最大上传限制只有 56kb ;
    只需要改成:

        app.use(bodyParser({
          formLimit: '1mb'
        }));
    

    至于这三个 limit 选项可以支持的单位,官方文档上没有写,但是查了一下原代码可以发现:
    koa-bodyparser 的底层是 co-bodyco-body 的底层又是 raw-bodyraw-body 则使用 bytes 库的 bytes.parse 来格式化 limit 参数。

    so,我们可以使用bytes 库支持的所有单位来设置 limit 配置项,具体来讲,文档上写的是:

    • b for bytes
    • kb for kilobytes
    • mb for megabytes
    • gb for gigabytes
    • tb for terabytes

    如果不写单位,默认就是 'b' ,更细节的东西可以查看 bytes 库的文档

  • 相关阅读:
    股市行情指标计算原理和趋势反映--量化交易1-基础
    建立ssh反向隧道
    Linux学习截图保存
    Java内存泄漏
    Java如何正确比较浮点数
    Github使用
    矩阵向量求导
    深度神经网络反向传播算法
    深度神经网络模型与前向传播
    Unity(八)脚本生命周期
  • 原文地址:https://www.cnblogs.com/Eden-cola/p/koa-bodyparser-413.html
Copyright © 2011-2022 走看看