mongodb 为什么突变不是持久的

gstyhher  于 2023-01-04  发布在  Go
关注(0)|答案(1)|浏览(151)
const Todo = mongoose.model("ToDo", {
    text: String,
    complete: Boolean
});
const yoga = createYoga({
    schema: createSchema({
        typeDefs: `
            type Query {
                todos: [Todo]
            }
            type Todo {
                id: ID!
                text: String!
                complete: Boolean!
            }
            type Mutation {
                createTodo(text: String!): Todo
                updateTodo(id: ID!, complete: Boolean!): Boolean
                removeTodo(id: ID!): Boolean
            }
        `,
        resolvers: {
            Query: {
                todos: () => Todo.find()
            },
            Mutation: {
                createTodo: async (_, { text }) => {
                    const todo = new Todo({ text, complete: false });
                    todo.save();
                    return todo;
                },
                updateTodo: async (_, { id, complete }) => {
                    Todo.findByIdAndUpdate(id, { complete });
                    return true;
                },
                removeTodo: async (_, { id }) => {
                    Todo.findByIdAndRemove(id);
                    return true;
                }
            }
        },
    }),
    graphiql: {
        title: 'To-Do Application',
        defaultQuery: `{}`,
    },
    graphqlEndpoint: '/',
})

在GraphQLPlayground:
我可以创建待办事项。我可以查询待办事项列表中的所有项目
我无法更新或删除列表中的项目。我的查询将返回初始列表。
"看起来你的帖子大部分都是代码;请添加更多的细节。看起来你的帖子大部分是代码;请添加更多详细信息"

2exbekwf

2exbekwf1#

您的问题是Mongoose model上的.save()函数是异步的,因此您必须等待它
因此,在您的todo.save()Todo.findByIdAndUpdate()todo.findByIdAndRemove()前面添加await

相关问题