GraphiQL返回nil变异

我使用Seqelize GraphQL,我有一个返回null的变异。

我试过用不同的几种方法来改变这个变种的parsing器,但是当我用GraphiQL来testing的时候它总是返回null。

下面是用几种不同的方式写的parsing器:

1 – 最初,我有想法添加包装function的承诺。

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 – 下面我直接返回logging。

  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 }) }) } 

问题是你没有从你的parsing器返回任何东西,而且你没有正确地使用promise。 尝试:

 resolve(root, args) { return 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 } }); }); }