【问题标题】:Meteor/React/ApolloServer/BodyParser - Payload too largeMeteor/React/ApolloServer/BodyParser - 负载太大
【发布时间】:2019-09-26 00:29:24
【问题描述】:

由于我的流星/反应应用程序中的 Mutation 对象,我正在尝试保存相当大的对象,但我在控制台中收到 Payload too large 错误:

PayloadTooLargeError: 请求实体太大

我知道我的对象超过了 100kb,这是 bodyparser 的默认限制,但我无法改变它。

我在启动 Apollo 服务器时尝试了以下操作:


const server = new ApolloServer({
    typeDefs,
    resolvers,
    context: async ({ req }) => {
        return ({
            user: await getUser(req.headers.authorization)
        })

    }
})

server.applyMiddleware({
    app: WebApp.connectHandlers,
  path: '/graphql'
})

WebApp.connectHandlers.use(bodyParser.json({limit: '100mb', extended: true}));

WebApp.connectHandlers.use('/graphql', (req, res) => {
    if (req.method === 'GET') {
        res.end()
  }
})

但我仍然遇到同样的错误。我认为我的对象大约是 400kb。我希望你们中的一个可以帮助我。提前致谢。

【问题讨论】:

    标签: meteor apollo body-parser apollo-server


    【解决方案1】:

    apollo-server-express 已包含body-parser,因此您不应再次将其添加为中间件。相反,您可以在调用applyMiddlware 时将body-parser 选项传递给Apollo:

    server.applyMiddleware({
      app: WebApp.connectHandlers,
      path: '/graphql',
      bodyParserConfig: {
        limit: '100mb',
      },
    })
    

    有关可用选项的完整列表,请参阅docs

    【讨论】:

    • 这不起作用,有人有同样的问题吗?
    猜你喜欢
    • 1970-01-01
    • 2019-01-31
    • 2014-12-02
    • 2018-04-23
    • 2015-04-12
    • 2019-05-08
    • 2019-07-20
    • 1970-01-01
    • 2020-06-17
    相关资源
    最近更新 更多