express - 增加 apollo-server-express 中的 body 限制大小

标签 express body-parser apollo-server

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

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

bodyParserConfig 示例片段

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 选项,所以我想知道我是否没有正确格式化配置。

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

谢谢

最佳答案

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

  • 您可以将此消息发送到不同类型的网络服务吗?
  • 您可以从其他工具接收此消息到 NiFi 中吗?

  • 您没有提到消息有多大,但似乎在发送时您尝试将限制设置为 50MB。
    我不认为这对 NiFi 来说一般来说是一个问题,但是如果您专门使用 multipart/form-data,则默认限制设置为 1MB。
    这可以通过设置进行调整:Multipart Request Max Size

    关于express - 增加 apollo-server-express 中的 body 限制大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55464415/

    相关文章:

    javascript - Sails.js 滚动 session

    node.js - Mongoose,无法使用 default_language : 'none' 创建文本索引

    Node.js Jade : Add rows to tables

    node.js - 如何管理 RESTful API 的权限

    javascript - 没有正文解析器的 Express 输入 JSON 在哪里?

    graphql - Apollo GraphQL : Calling a Query Twice with apolloClient. 查询?

    typescript - 如何在 type-graphql 中触发订阅?

    express - body 解析器已弃用

    node.js - 如何处理express nodejs中的body-parser错误

    具有多对多关系的类型元素的 GraphQL 解析器