【问题标题】:How to use sequelize-typescript for querying relative objects through custom Apollo GraphQL resolver?如何使用 sequelize-typescript 通过自定义 Apollo GraphQL 解析器查询相关对象?
【发布时间】:2021-04-17 17:12:27
【问题描述】:

如何使用sequelize-typescript通过自定义Apollo GraphQL类型查询相关对象?我有以下没有打字稿的查询:

User 和 Event GraphQL 类型:

type User {
    id: Int
    login: String
    email: String
    role: Roles
    url_identity: String
}

type Event {
  id: Int
  event_name: String
  user: User
}

用户模型

import {HasOne, Model, Table} from "sequelize-typescript";
import Event from "./event.model";

@Table({
    timestamps: false,
    modelName: 'User',
})
export default class User extends Model {

    @HasOne(() => Event)
    event: Event
}

解析器:

static resolver() {
    return {
        Event: {
            user: event => event.$get('user')
    }
}

Typescript 看不到 event.$get('user')

【问题讨论】:

    标签: graphql sequelize.js apollo-server sequelize-typescript graphql-codegen


    【解决方案1】:

    答案是将 ma​​ppers 添加到您的 graphql-codegen 配置中。 你也可以为上下文传递接口(第三个参数):

    schema: ./src/graphql/types/**/*.graphql
    generates:
      ./src/graphql/resolvers-types.ts:
        config:
          useIndexSignature: true
          contextType: ./schema#IApolloServerContext
          mappers:
            Event: ../database/models/event.model#EventModel
            User: ../database/models/user.model#UserModel
        plugins:
          - typescript
          - typescript-resolvers
    

    更多信息在这里:https://graphql-code-generator.com/docs/plugins/typescript-resolvers#use-your-model-types-mappers

    【讨论】:

      猜你喜欢
      • 2019-04-06
      • 2020-05-30
      • 2019-06-12
      • 2023-03-13
      • 1970-01-01
      • 2018-08-27
      • 2019-12-06
      • 2019-10-01
      • 2020-02-21
      相关资源
      最近更新 更多