typescript - 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”?
这是来自控制台的错误:
如果有人需要任何小例子,请看这里。
你可以运行它来授予 wait-for-it.sh 文件的权限,如下所示:
chmod +x wait-for-it.sh
并运行它:
docker-compose up --build
或检查数据库:
docker-compose exec db mysql -u root -p
请帮忙 :(
解决方案
我认为有点太晚了,但错误似乎出现在 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
推荐阅读
- google-sheets - 如何计算特定的相同文本并将其汇总在同一 googlesheet 的另一个选项卡中
- javascript - 从 Javascript 中的特定规范生成 QR 码
- macos - Metal GPU 帧时间行为不直观
- php - PHP Carbon - 如何在没有秒的情况下按分钟比较日期时间?
- python - 连接两个文件中的数据
- python - Python - 有没有办法将结果输出到熊猫 DF
- java - 打电话后重启手机
- python - Uvicorn 是否支持统计服务器机制?
- python - Python回溯,如何隐藏绝对路径?
- google-chrome - 为什么 Chrome 会知道鼠标点击的时间?