问题描述
在 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 (将#修改为@)