Next.js TypeORM无法与graphQL和NextJS类型一起使用

Next.js TypeORM无法与graphQL和NextJS类型一起使用,next.js,typeorm,typegraphql,Next.js,Typeorm,Typegraphql,我正在创建一个nextjs项目,其中包含类型GraphQL和类型orm。 问题是,当我调用解析程序时,我遇到以下问题: 错误:未找到连接“默认值”。 当我打开url/api/graphql时,它会运行,但是当我直接打开主页时,它就不工作了 export default async (req: NextApiRequest, res: NextApiResponse) => { await connectDatabase(options) const apolloServerHand

我正在创建一个nextjs项目,其中包含类型GraphQL和类型orm。 问题是,当我调用解析程序时,我遇到以下问题:

错误:未找到连接“默认值”。

当我打开url/api/graphql时,它会运行,但是当我直接打开主页时,它就不工作了

export default async (req: NextApiRequest, res: NextApiResponse) => {
  await connectDatabase(options)
  const apolloServerHandler = await getApolloServerHandler();
  return apolloServerHandler(req, res);
};

export const config = {
  api: {
    bodyParser: false,
  },
};

let apolloServerHandler: (req: any, res: any) => Promise<void>;

export const getApolloServerHandler = async () => {
  if (!apolloServerHandler) {
    const apolloServer = new ApolloServer({
      schema,
    });

    apolloServerHandler = apolloServer.createHandler({
      path: "/api/graphql",
    });
  }
  return apolloServerHandler;
};

function getConnectionOrCreate(options: ConnectionOptions) {
  const name = options.name ?? "default";

  const connectionManager = getConnectionManager();
  const isAvailable = connectionManager.has(name);

  if (!isAvailable) {
    return connectionManager.create(options);
  }
  return connectionManager.get(name);
}

export async function connectDatabase(options: ConnectionOptions) {
  const connection = getConnectionOrCreate(options);
  if (!connection.isConnected) {
    await connection.connect();
    console.info("ready - database is ready to use");
  }
  return connection;
}

export const options: ConnectionOptions = {
  type: "sqlite",
  database: `src/data/line.sqlite`,
  entities: [Todo],
  synchronize: true,
  logging: true,
};
导出默认异步(req:NextApiRequest,res:nextapireresponse)=>{
等待连接数据库(选项)
const apolloServerHandler=等待getApolloServerHandler();
返回服务器处理程序(req、res);
};
导出常量配置={
api:{
bodyParser:false,
},
};
让apolloServerHandler:(req:any,res:any)=>承诺;
export const getApolloServerHandler=async()=>{
如果(!服务器处理程序){
const阿波罗服务器=新阿波罗服务器({
模式,
});
apolloServerHandler=apolloServer.createHandler({
路径:“/api/graphql”,
});
}
返回处理程序;
};
函数getConnectionOrCreate(选项:ConnectionOptions){
const name=options.name??“默认”;
const connectionManager=getConnectionManager();
const isAvailable=connectionManager.has(名称);
如果(!i可用){
返回connectionManager.create(选项);
}
返回connectionManager.get(名称);
}
导出异步函数connectDatabase(选项:ConnectionOptions){
const connection=getConnectionOrCreate(选项);
如果(!connection.isConnected){
等待连接。连接();
info(“就绪-数据库已准备好使用”);
}
回路连接;
}
导出常量选项:连接选项={
类型:“sqlite”,
数据库:`src/data/line.sqlite`,
实体:[待办事项],
同步:对,
日志记录:是的,
};