我正在使用GraphQL和Sequelize,我有一个返回null的变异。
我尝试用不同的方法更改变种的解析器,但是当我用GraphiQL测试它时它总是返回null。
以下几种方式写的解析器:
1 - 最初我有想法在承诺中添加功能。
resolve(root, args) {
return new Promise((resolve, reject) => {
db.record.findOne({ where: { UID: args.UID } })
.then(record => {
let newArr = undefined
if (record.watched == null) {
newArr = [args.value]
} else {
let old = record.watched
newArr = old.concat([args.value])
}
db.record.update({ watched: newArr }, { where: { UID: args.UID } })
.then(record => {
resolve(record)
})
})
})
}
2 - 在这里,我回复了一个承诺。
resolve(root, args) {
db.record.findOne({ where: { UID: args.UID } })
.then(record => {
let newArr = undefined
if (record.watched == null) {
newArr = [args.value]
} else {
let old = record.watched
newArr = old.concat([args.value])
}
return db.record.update({ watched: newArr }, { where: { UID: args.UID } })
})
}
3 - 下面我直接退回了记录。
resolve(root, args) {
db.record.findOne({ where: { UID: args.UID } })
.then(record => {
let newArr = undefined
if (record.watched == null) {
newArr = [args.value]
} else {
let old = record.watched
newArr = old.concat([args.value])
}
db.record.update({ watched: newArr }, { where: { UID: args.UID } })
.then(record => {
return record
})
})
}
答案 0 :(得分:0)
问题是你没有从你的解析器返回任何东西,而且你没有正确使用promises。尝试:
<%= roomData.nights.booked %>