【问题标题】:Sails: increase bodyParser limitsSails:增加 bodyParser 限制
【发布时间】:2016-02-22 07:46:14
【问题描述】:

在我的应用程序(帆 0.12.0)中,我想扩展 POST 请求时发送的字节数限制。所以在我的config/http.js 中,我取消注释bodyParser 并将其设置为:

module.exports.http = {

    ...

    middleware: {
        ...

        bodyParser: (function () {
            var opts = {limit: 1024*1024*5}; // set it to 5 megabytes
            var fn;

            // Default to built-in bodyParser:
            fn = require('skipper');
            return fn(opts);

        })()

        ...
    }

    ...
}

但现在我的每个请求似乎都挂起,结果我在浏览器发送的每个请求中都得到502 bad gateway

所以:

  • 如何正确初始化skipper 并扩展允许的字节数限制?
  • 为什么我的所有请求现在都以 502 结束?

EDIT 当@sgress454 询问bodyParser 的确切位置时,我决定在最初的问题中对其进行精确定位。简而言之,它位于默认配置中被注释掉的位置 - 在 middleware 对象下。

原来这是一个错误,issue 已经创建,所以请关注它以进行进一步的开发。

【问题讨论】:

  • 您是将bodyParser 配置直接放在module.exports.http 下,还是取消注释该文件中的middleware: 包装属性?由于issue in the Sails config loaderbodyParser 配置必须直接在module.exports.http 下指定。回复:502 错误,我无法与之交谈——这是你在超时后得到的吗?如果请求挂起,您根本不应该得到响应。
  • 哇!!.. 至于我看到你半小时前打开了这个问题,这让我得出结论,我是唯一遇到这个错误的人,感谢你的转载和发布.期待开发者 cmets。
  • 那么……是吗?将配置放在module.exports.http 下可以解决问题吗?我希望我可以说这是以前从未遇到过的,但是这种情况很少发生,以至于它没有得到应有的关注。我们现在有一个更好的问题处理流程,所以现在bodyParser 问题再次出现,感谢您,我们应该能够相当容易地解决它。
  • 是的,将bodyParsermiddleware 对象中取出并直接放入module.exports.http 对我有用。我不知道我是否以优雅的方式完成了它,但我在module.exports.http 之前声明了一个skipper 变量等于require('skipper')( { limit: 1024*1024*5 } );,然后在bodyParser 中我只返回skipper。跨度>

标签: sails.js


【解决方案1】:

bug as 尚未更新,但它现在适用于 Sails 1.2.3。

具体使用默认config/http.js中的bodyParser示例:

...
bodyParser: (function _configureBodyParser(){
  var skipper = require('skipper');
  var middlewareFn = skipper({
    // strict: true,
    limit: '10mb',
  });
  return middlewareFn;
})(),
...

请注意,bodyParser 定义中缺少原始问题 ()

【讨论】:

    猜你喜欢
    • 2015-11-05
    • 1970-01-01
    • 1970-01-01
    • 2015-07-08
    • 1970-01-01
    • 2014-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多