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

Posted

技术标签:

【中文标题】在 apollo-server-express 中增加身体限制大小【英文标题】:Increasing body limit size in apollo-server-express 【发布时间】:2019-08-23 04:02:04 【问题描述】:

我正在尝试使用 apollo-server-express 中的上传标量将文件上传到网络服务。我可以将小文件(10s 的 kbs)上传到 Web 服务,但无法发送更大的文件。

我做了一些搜索,发现我可以使用 body-parser 包以及中间件中设置的 bodyParserConfig 选项来更改正文大小限制。我已经尝试过实现这一点,以及在 express 应用程序本身中实现它,但似乎都没有工作。

bodyParserConfig 示例 sn-p

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


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

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

const bodyParserConfig = limit: '50mb';


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

表达示例片段

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

尝试这两个选项以及来自Error: request entity too large 的选项似乎对我不起作用。网络服务(Nifi HTTPHandleRequest)告诉我它无法接收内容。大多数解决方案示例(如上面的示例)都是专门针对 express 而不是 apollo-express-server 的,所以我不确定是否需要采用不同的方法。 apollo-server 文档状态使用 bodyParserConfig 选项,所以我想知道我是否没有正确格式化配置。

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

谢谢

【问题讨论】:

这个问题你解决了吗?我也面临同样的问题! 【参考方案1】:

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

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

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

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

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

【讨论】:

以上是关于在 apollo-server-express 中增加身体限制大小的主要内容,如果未能解决你的问题,请参考以下文章

apollo-server-express:如何解决内部订阅问题?

graphql + apollo-server-express,如何处理 express authMiddleware 中的身份验证错误?

Apollo-Server-Express 未收到上传对象

使用 Apollo-Server-Express 从服务器中使用光标分页查询 REST API

无法从 apollo-server-express 导入 SchemaDirectiveVisitor

Apollo-server-express Session 未定义问题