在apollo-server-express中增加身体限制大小

时间:2019-04-01 22:24:37

标签: express body-parser apollo-server

我正在尝试使用apollo-server-express中的Upload标量将文件上传到Web服务。我可以将小文件(10 kbs)上传到Web服务,但是在发送较大文件时遇到了麻烦。

我进行了一些搜索,发现可以使用body-parser软件包以及在中间件中设置的bodyParserConfig选项来更改主体大小限制。我已经尝试实现此功能,以及在express应用本身中实现它,但是似乎都没有用。

bodyParserConfig示例片段

const bodyParserConfig = bodyParser.urlencoded({limit: '50mb', extended: 'true', parameterLimit: 10000});


server.applyMiddleware({ app, path: process.env.GRAPHQL_ENDPOINT, bodyParserConfig});

我不确定是否需要在调用json(config)的apollo服务中使用json方法,所以我尝试了一下,但它也没有起作用。

const bodyParserConfig = {limit: '50mb'};


server.applyMiddleware({ app, path: process.env.GRAPHQL_ENDPOINT, bodyParserConfig});

表达示例片段

app.use(bodyParser.json({limit: '50mb'}))

尝试这两个选项以及Error: request entity too large中的选项似乎都不适合我。 webservice(Nifi HTTPHandleRequest)告诉我它未能接收内容。解决方案的大多数示例(如上述解决方案)都是专门针对快递的,而不是针对apollo-express-server的,因此我不确定是否需要采用其他方法。阿波罗服务器文档指出要使用bodyParserConfig选项,因此我想知道我是否没有正确格式化配置。

我做错了什么简单的事情吗?另外,我如何查看限制?很难调试,看看我设置的选项是否实际上在做什么。

谢谢

1 个答案:

答案 0 :(得分:0)

我想调试的第一步是弄清楚发送或接收时是否发生故障。

  1. 您能否将此消息发送到其他类型的网络服务?
  2. 您能否在 NiFi 中从其他工具接收此消息?

您没有提到消息有多大,但似乎在发送时您尝试将限制设置为 50MB。

我不认为这对 NiFi 来说一般来说是一个问题,但如果您专门使用 multipart/form-data,默认限制设置为 1MB。

这可以通过设置进行调整:Multipart Request Max Size