Meteor/React/ApolloServer/BodyParser - 负载太大

Meteor/React/ApolloServer/BodyParser - Payload too large

由于我的 meteor/react 应用程序中的 Mutation 对象,我正在尝试保存相当大的对象,但我在控制台中收到有效负载太大错误:

PayloadTooLargeError: request entity too large

我知道我的对象超过了 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。我希望你们中的一个能帮助我。提前致谢。

apollo-server-express 已经包含 body-parser 所以你不应该再次添加它作为中间件。相反,您可以在调用 applyMiddlware:

时将 body-parser 选项传递给 Apollo
server.applyMiddleware({
  app: WebApp.connectHandlers,
  path: '/graphql',
  bodyParserConfig: {
    limit: '100mb',
  },
})

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