我想找出如何将mikro-orm连接到psql与阿波罗图形to。我正试着遵循本·阿瓦德的“谎言”教程。
目前,我被这个配置卡住了。
这个代码块违反了mikro-orm原则,我不知道如何解决它们。
const orm = await MikroORM.init<PostgreSqlDriver>(config);
await orm.getMigrator().up();
const app = express();
const apolloServer = new ApolloServer({
schema: await buildSchema({
resolvers: [HelloResolver, PostResolver],
validate: false
}),
context: () => ({ em: orm.em })
})错误信息显示:
类型'{ schema: any;context:() => { em: any;}‘的参数不能分配给'Config’类型的参数。类型'{ schema: any;context:() => { em: any;}‘“类型”Config“中缺少下列属性:记录器、调试、缓存、formatError和6 more.ts(2345)参数(2345)类型'{解析器: typeof HelloResolver,Type of PostResolver;cache : boolean;}’不能分配给类型'BuildSchemaOptions‘的参数。对象文字只能指定已知属性,而“BuildSchemaOptions”类型中不存在“验证”。
我尝试修改types.ts配置如下:
import { EntityManager } from "@mikro-orm/postgresql";
export type MyContext = {
em: EntityManager
}这两个问题都解决不了。
mikro-orm文档中有一个示例配置,它定义模式如下:
const schema: GraphQLSchema = await buildSchema({
resolvers: [BookResolver, AuthorResolver],
dateScalarMode: 'isoDate',
});为此,它需要:
import { GraphQLSchema } from 'graphql';当我尝试这种方法时,我得到的错误与Ben使用的方法相同。
在解析器/post.ts中使用Ben的示例存在问题,如下所示:
@Resolver()
export class PostResolver {
@Query(() => [Post])
posts(@Ctx() { em }: MyContext): Promise<Post[]> {
return em.find(Post, {});
}
}类型'Promise<{}[]>‘不能分配到键入'Promise’。 类型'{}[]‘不能指定为键入'Post[]’。类型‘Post’中缺少以下属性: id、createdAt、updatedAt、title
Graphql根本不识别post解析器。
有没有人知道如何在这一步完成配置,将mikro-orm与psql和阿波罗图形to连接(50分钟后进入本教程)?
发布于 2022-08-14 15:02:15
确保从正确的包导入buildSchema:
import { buildSchema } from "type-graphql";而不是来自:
import { buildSchema } from "graphql";https://stackoverflow.com/questions/68885765
复制相似问题