[英]How to return a model back (or anything for that matter) on an update mutation in Sequelize?
[英]Return null on update mutation GraphQL and Sequelize
我想知道为什么当我执行我的突变时我的响应是“null”。
我的查询有效:当我执行请求时,数据库 SQL 中的状态 is_active 变为 true 或 false。
创建时,我有正确的响应,但没有更新。
Graphql 请求:
mutation {
updateSequence(id: 4, , input: {is_active: true}) {
is_active
}
}
响应 :
{
"data": {
"updateSequence": {
"is_active": null
}
}
}
解析器.js
Mutation : {
createSequence(_, {input}) {
return models.Sequence.create(input);
},
updateSequence(_, {id, input}) {
return models.Sequence.update(input, {where: {id: id}});
}
}
schema.js
# Sequence
type Sequence {
id: Int!,
code: String,
buckets: [Bucket],
sequence_types : [SequenceType]
is_active: Boolean,
}
# SequenceInput
input SequenceInput {
is_active: Boolean
}
...
type Query {
sequences: [Sequence]
sequence(id: Int): Sequence
}
type Mutation {
createSequence(input: SequenceInput): Sequence,
updateSequence(id: ID!, input: SequenceInput): Sequence
}
schema {
query: Query,
mutation: Mutation
}
已解决:将 MySQL 迁移到 Postegres 以使用返回选项(仅限 Postegres)
我迁移我的数据库以使用 Sequelize 的返回选项。
createSequence(_, {input}) {
return models.Sequence.create(input);
},
updateSequence(_, {id, input}) {
return models.Sequence.update(input, {where: {id: id}, returning: true}).then((sequence) => {
return sequence[1][0].dataValues;
});
},
根据续集文档:
create
方法返回一个Promise<Model>
,在您的情况下,它返回与type Sequence
匹配的内容。update
方法返回一个Promise<Array<number, number>>
并且不匹配type Sequence
。承诺返回一个包含一个或两个元素的数组。 第一个元素始终是受影响的行数,而第二个元素是实际受影响的行(仅在带有 options.returning true 的 postgres 中支持。)
因此,要么将updateSequence
的返回类型更改为与models.Sequence.update
的返回类型匹配的东西,要么在update
之后构建一个与type Sequence
匹配的对象。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.