gpt4 book ai didi

express - Apollo Server Express : Request entity too large

转载 作者:行者123 更新时间:2023-12-04 16:01:13 25 4
gpt4 key购买 nike

我需要在 GraphQL 突变中发布一个大型负载。如何增加 Apollo Server 的主体尺寸限制?
我正在使用 apollo-server-express版本 2.9.3。
我的代码(简化):

const myGraphQLSchema = new GraphQLSchema({
query: new GraphQLObjectType({
name: 'Query',
fields: {
user: UserQuery,
},
}),
mutation: new GraphQLObjectType({
name: 'Mutation',
fields: () => ({
...UserMutations,
}),
}),
});

const apolloServer = new ApolloServer(schema: myGraphQLSchema);

const app = express();
app.use(apolloServer.getMiddleware({ path: '/graphql' });

最佳答案

只需在 Apollo 服务器中间件之前添加一个 Express 正文解析器:

import { json } from 'express';

app.use(json({ limit: '2mb' });
app.use(apolloServer.getMiddleware({ path: '/graphql' });

如果您想花哨,您可以为经过身份验证和未经身份验证的请求设置单独的正文大小限制:
const jsonParsers = [
json({ limit: '16kb' }),
json({ limit: '2mb' }),
];

function parseJsonSmart(req: Request, res: Response, next: NextFunction) {
// How exactly you do auth depends on your app
const isAuthenticated = req.context.isAuthenticated();
return jsonParsers[isAuthenticated ? 1 : 0](req, res, next);
}

app.use(parseJsonSmart);
app.use(apolloServer.getMiddleware({ path: '/graphql' });

关于express - Apollo Server Express : Request entity too large,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58099083/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com