不知道为什么我的 cursorForObjectInConnection returns 为空?
don't know why my cursorForObjectInConnection returns null?
我在响应时遇到此错误:
Cannot return null for non-nullable field TodoEdge.cursor.
这是我的突变代码:
mutateAndGetPayload: async ({text}, context) => {
let newTodo = new TodoModel({ text, _creatorUserId: context.user._id });
await newTodo.save();
return {newTodo};
},
outputFields: {
todoEdge: {
type: GraphQLTodoEdge,
resolve: async ({newTodo}, args,context) => {
const todos = await getTodosByUserContext(context.user._id, 'any');
console.log("cursorForObjectInConnection = ",cursorForObjectInConnection(todos, newTodo)) // this logs null?
return {
cursor: cursorForObjectInConnection(todos, newTodo),
node: newTodo,
};
},
},
todos 和 newTodo 是从 mongoose 数据库中获取的。我想我正确地遵循了这个相关的 todo-modern sample。帮助?
让我们尝试以下操作:
1) 从您的数据库中获取待办事项,例如
const todos = await Todo.find({});
您可以根据您的待办事项架构获取特定用户的待办事项。 Todo.find({ 用户名: context.user._id});
2) 获取待办事项后获取光标:
const cursor = offsetToCursor(todos.length);
这对我有用。试一试。
我在响应时遇到此错误:
Cannot return null for non-nullable field TodoEdge.cursor.
这是我的突变代码:
mutateAndGetPayload: async ({text}, context) => {
let newTodo = new TodoModel({ text, _creatorUserId: context.user._id });
await newTodo.save();
return {newTodo};
},
outputFields: {
todoEdge: {
type: GraphQLTodoEdge,
resolve: async ({newTodo}, args,context) => {
const todos = await getTodosByUserContext(context.user._id, 'any');
console.log("cursorForObjectInConnection = ",cursorForObjectInConnection(todos, newTodo)) // this logs null?
return {
cursor: cursorForObjectInConnection(todos, newTodo),
node: newTodo,
};
},
},
todos 和 newTodo 是从 mongoose 数据库中获取的。我想我正确地遵循了这个相关的 todo-modern sample。帮助?
让我们尝试以下操作:
1) 从您的数据库中获取待办事项,例如
const todos = await Todo.find({});
您可以根据您的待办事项架构获取特定用户的待办事项。 Todo.find({ 用户名: context.user._id});
2) 获取待办事项后获取光标:
const cursor = offsetToCursor(todos.length);
这对我有用。试一试。