Next.js TypeORM无法与graphQL和NextJS类型一起使用
我正在创建一个nextjs项目,其中包含类型GraphQL和类型orm。 问题是,当我调用解析程序时,我遇到以下问题: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
错误:未找到连接“默认值”。
当我打开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`,
实体:[待办事项],
同步:对,
日志记录:是的,
};