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