TypeORM枚举未检测到正确的参数

时间:2018-12-27 16:58:51

标签: typescript graphql-js typeorm

我有这个枚举:

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”?

这是来自控制台的错误:

enter image description here

如果有人需要任何小例子,请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

请帮助:(

1 个答案:

答案 0 :(得分:0)

我认为为时已晚,但错误似乎出在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?