在Meteor.js应用程序中设置请求限制

时间:2014-05-27 21:24:47

标签: javascript json meteor iron-router

我正在尝试将非常大量的JSON发送到Meteor.js应用程序中的服务器端路由。我继续犯这个错误...

错误:请求实体太大     at Object.exports.error(/mnt/data/2/node_modules/connect/lib/utils.js:62:13)     在极限(/mnt/data/2/node_modules/connect/lib/middleware/limit.js:46:47)     在urlencoded(/mnt/data/2/node_modules/connect/lib/middleware/urlencoded.js:58:5)     在/mnt/data/2/node_modules/connect/lib/middleware/bodyParser.js:55:7     在json(/mnt/data/2/node_modules/connect/lib/middleware/json.js:46:55)     在Object.bodyParser [作为句柄](/mnt/data/2/node_modules/connect/lib/middleware/bodyParser.js:53:5)     在下一个(/mnt/data/2/node_modules/connect/lib/proto.js:190:15)     在Object.query [作为句柄](/mnt/data/2/node_modules/connect/lib/middleware/query.js:44:5)     在下一个(/mnt/data/2/node_modules/connect/lib/proto.js:190:15)     at Object.Package [as handle](packages / spiderable / spiderable.js:108)

在我的研究中,我发现需要为连接中间件设置请求限制。有谁知道我怎么能在Meteor中做到这一点?谢谢!

2 个答案:

答案 0 :(得分:3)

另一个解决方案是在服务器上的某处添加以下代码(例如Meteor.startup):

Router.configureBodyParsers = function() {
  Router.onBeforeAction(Iron.Router.bodyParser.urlencoded({
    extended: true,
    limit: '100mb'
  }));
};

ref

答案 1 :(得分:0)

经过一段时间的反复试验后,最终为我工作的是修改IronRouter包。第30行/lib/server/router.js更改...

start: function () {
connectHandlers
  .use(connect.query())
  .use(connect.bodyParser())
  .use(_.bind(this.onRequest, this)); },

为...

start: function () {
connectHandlers
  .use(connect.query())
  .use(connect.bodyParser({limit: '100mb'})) // or whatever you want your limit to be
  .use(_.bind(this.onRequest, this)); },