javascript - 使用 TypeORM 实体的 GraphQL 查询

标签 javascript graphql typeorm

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

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

我也不确定这个魔法是如何返回 TestType 的来自Promise<Test> .在哪里TestTypegraphql类型和 <Test>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);
    }
};

最佳答案

如果您正在寻找 Prisma(自动生成的数据库和架构)的魔力,以及托管 API 和访问模型和解析器以便执行自定义操作的灵 active ,您应该查看 Warthog。它是一个用 TypeScript 编写的 Node.js GraphQL API 框架,您可以在其中设置解析器和数据模型,它会自动生成带有固定分页、过滤等的整个模式……类似于 Prisma 的约定。它不像 Prisma 那样功能丰富,但它给了你更多的控制权。您可以查看 warthog-starter ,这将使您快速启动并运行。

免责声明:我是 Warthog 的作者

关于javascript - 使用 TypeORM 实体的 GraphQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50822710/

相关文章:

javascript - css div 破坏容器并掉落到下面的另一个

python - 在 graphene_django 中使用 DjangoFilterConnectionField 和自定义连接

Nestjs如何正确地将2个表与一个中间表映射

typescript - TypeORM upsert - 如果不存在则创建

java - 使用 Extjs 将表单数据传递到 servlet

javascript - 悬停图标时如何使密码文本框值可见

reactjs - 如何在电容器应用程序处于后台时继续运行 apollo 订阅?

javascript - graphql 中突变后的查询

node.js - 如何从 NestJS/TypeORM 中父级的连接字段访问关系 ID

javascript - 在 Node.js 后端记录事件/操作以供以后分析