Javascript 使用TypeForm实体的graphql查询

Javascript 使用TypeForm实体的graphql查询,javascript,graphql,typeorm,Javascript,Graphql,Typeorm,我正在学习graphql,并将其与typeorm相结合。我用graphql编写了一个查询,想知道这是否是将typeorm实体与同一实体的graphql类型相结合的正确方法。或者有没有办法使用typeorm实体而不是graphql类型作为返回值 typeorm实体和graphql类型具有完全相同的字段,本质上是完全相同的。只有一个定义为graphql类型,另一个使用typeorm装饰器 我也不确定这个魔术是如何从一个承诺返回一个TestType。其中,TestType是一个graphql类型,是一

我正在学习
graphql
,并将其与
typeorm
相结合。我用
graphql
编写了一个查询,想知道这是否是将
typeorm
实体与同一实体的
graphql
类型相结合的正确方法。或者有没有办法使用
typeorm
实体而不是
graphql
类型作为返回值

typeorm
实体和
graphql
类型具有完全相同的字段,本质上是完全相同的。只有一个定义为
graphql
类型,另一个使用
typeorm
装饰器

我也不确定这个魔术是如何从一个
承诺
返回一个
TestType
。其中,
TestType
是一个
graphql
类型,
是一个
typeorm
实体

import {GraphQLFieldConfig, GraphQLNonNull} from "graphql/type/definition";
import {TestType} from "../type/TestType";
import {GraphQLID} from "graphql";
import {IGraphQLContext} from "../IGraphQLContext";

export const Test: GraphQLFieldConfig<any, IGraphQLContext, any> = {
    // notice the type to return here is the graphql type
    type: new GraphQLNonNull(TestType),
    description: "A query for a test",
    args: {
        id: {
            type: new GraphQLNonNull(GraphQLID),
            description: "The ID for the desired test"
        }
    },
    async resolve (source, args, context) {
        // getTest(...) here returns a promise<Test> where Test is a typeorm entity
        return context.db.testDAO.getTest(args.id);
    }
};
从“graphql/type/definition”导入{GraphQLFieldConfig,GraphQLNonNull};
从“./type/TestType”导入{TestType};
从“graphql”导入{GraphQLID};
从“./IGraphQLContext”导入{IGraphQLContext};
导出常量测试:GraphQLFieldConfig={
//请注意,这里要返回的类型是graphql类型
类型:新GraphQLNonNull(TestType),
description:“测试的查询”,
args:{
身份证:{
类型:新GraphQLNonNull(GraphQLID),
描述:“所需测试的ID”
}
},
异步解析(源、参数、上下文){
//getTest(…)在这里返回一个承诺,其中Test是一个typeorm实体
返回context.db.testDAO.getTest(args.id);
}
};

我决定放弃使用typeorm的尝试,继续使用它。

如果你想要的是Prisma(自动生成的数据库和模式)的魔力,还有托管API和访问模型和解析程序的灵活性,这样你就可以执行自定义操作,那么你应该去看看。它是一个Node.js GraphQL API框架,用TypeScript编写,您可以在其中设置解析程序和数据模型,它可以自动生成您的整个模式,并支持分页、筛选等操作。。。类似于普里斯马的惯例。它的功能不如Prisma丰富,但它给了你更多的控制。你可以退房,这会让你快速上路


免责声明:我是《野猪》的作者

谢谢,我会去看看。