【问题标题】:TypeORM enum does not detect the right paramTypeORM 枚举未检测到正确的参数
【发布时间】:2019-05-25 16:22:15
【问题描述】:

我有这个枚举:

enum ENUMIdentificationDocumentType {
    CC = "CÉDULA DE CIUDADANÍA",
    TI = "TARJETA DE IDENTIDAD"
}

所以,当我通过架构向 Graphql 发出请求时,如下所示:

mutation {
    register(
      ...Stuff
      identificationDocumentType: TI
      ...MoreStuff
    ) {
      path
      message
    }
}

在 graphql 模式中,枚举的定义如下:

enum ENUMIdentificationDocumentType {
    CC
    TI
}

所以,Mutation 用 TI 向我发送数据“identificationDocumentType”,这是对的……但是实体中定义的枚举:

enum ENUMIdentificationDocumentType {
    CC = "CÉDULA DE CIUDADANÍA",
    TI = "TARJETA DE IDENTIDAD"
}

无法识别参数 TI 应为“TARJETA DE IDENTIDAD”,但它在查询中返回 TI:

INSERT INTO `user`(`id`, `routePhoto`, `routeCover`, `name`, `lastname`, `description`, `identificationDocumentType`, `identificationDocument`, `address`, `telephone`, `departament`, `city`, `civilStatus`, `website`, `gender`, `email`, `password`, `confirmed`, `forgotPasswordLocked`) VALUES (?, DEFAULT, DEFAULT, ?, ?, DEFAULT, ?, ?, DEFAULT, ?, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, ?, ?, DEFAULT, DEFAULT) -- PARAMETERS: ["04ef7733-e4bd-4d00-a2f3-d455a58d7602","Andrés","Montoya","TI",991026077,"3213726060","andresmontoyafcb@gmail.com","$2a$10$G9JKoUxlxXYoND6iyws1Q.x2jbznKueoRorKqAGkTDTdaGUVAYlmu"]

当我发送 TI 之类的内容时,我如何检测到 TypeORM 的枚举检测到的是“TARJETA DE IDENTIDAD”?

这是来自控制台的错误:

如果有人需要任何小例子,here you go

您可以像这样运行它,授予对 wait-for-it.sh 文件的权限:

chmod +x wait-for-it.sh

然后运行它:

docker-compose up --build

或者检查数据库:

docker-compose exec db mysql -u root -p

请帮忙:(

【问题讨论】:

    标签: typescript graphql-js typeorm


    【解决方案1】:

    我认为有点太晚了,但错误似乎出现在 graphql 架构枚举上,因为值会自动映射到名称。

    您可以尝试使用 graphql-js 映射到不同的值,像这样。

    import {
      GraphQLEnumType,
    } from 'graphql';
    
    const taskStateEnumType = new GraphQLEnumType({
      name: 'TaskStateEnum',
      values: {
        ASSIGNED: {
          value: 0,
        },
        UNASSIGNED: {
          value: 1,
        },
        IN_PROGRESS: {
          value: 2,
        },
      },
    });
    

    有关更多信息,请查看本文。 https://medium.com/atheros/how-to-design-graphql-mutations-and-queries-part-2-enums-ebb01613832

    还有这个。 Do GraphQL enum types resolve their values automatically?

    【讨论】:

      猜你喜欢
      • 2020-02-09
      • 2021-11-13
      • 1970-01-01
      • 2017-12-11
      • 1970-01-01
      • 1970-01-01
      • 2015-07-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多