如何解决Next.JS + Apollo ServerbodyParser 问题
在 next.js api 路由函数上使用 apollo 服务器时,我们有:
export const config = {
api: {
bodyParser: false
},};
这样 Apollo 就不会在处理来自 next.js 的请求时失败
但是,如果我们删除此配置,那么我想 Apollo 将无限等待获取未解析的正文(或未解析的请求流)。
如果我的请求也被(快速服务器或云函数)解析,将导致 Apollo 挂起并最终因超时错误而失败。
我该如何处理这个问题?
import Cors from 'micro-cors';
import { ApolloServer,gql } from 'apollo-server-micro';
import { NextApiRequest,NextApiResponse } from 'next';
type Todo = {
...
};
const todos: Todo[] = [
...
];
const todoResolvers = {
Query: {
...
},Mutation: {
...
};
const todoTypes = gql`
...
`;
const cors = Cors({
origin: "*",credentials: true,});
const getApolloServerHandler = async (): Promise<any> => {
const apolloServer = new ApolloServer({
typeDefs: [todoTypes],resolvers: [todoResolvers],introspection: true,playground: true,});
const handler = apolloServer.createHandler({ path: '/api/graphql' });
const corsHandler = cors(handler);
return corsHandler;
};
export const config = {
api: {
bodyParser: false,},};
export default async (req: NextApiRequest,res: NextApiResponse): Promise<void> => {
const apolloServerHandler = await getApolloServerHandler();
return apolloServerHandler(req,res);
};
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。