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 (将#修改为@)