You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apollo GraphQL调用createPost Mutation返回null问题求助

GraphQL Mutation返回null问题修复

问题原因

两个Mutation的解析函数(resolver)没有返回数据库操作的结果,GraphQL接收不到返回值时就会默认返回null。
你当前的resolver中Mutation部分代码存在遗漏:

Mutation: {
    createPost: async (parent, args, {mongoDataMethods}) =>{
        await mongoDataMethods.createPost(args)
        // 缺少return语句,执行结果没有返回给GraphQL
    },
    createAuthor : async (parent, args, {mongoDataMethods}) =>{
        await mongoDataMethods.createAuthor(args)
        // 同样缺少return语句
    }
}

虽然你在data层封装的createPost、createAuthor方法已经正确返回了MongoDB存储后的文档对象,但是resolver调用这两个方法时只等待了异步执行完成,没有把结果透传给GraphQL的执行引擎,最终接口返回的createPost字段就会是null。

修复方法

给两个Mutation resolver加上return语句,把数据库返回的创建结果透传出去即可,修改后的Mutation部分代码如下:

// Mutations
Mutation: {
    createPost: async (parent, args, {mongoDataMethods}) =>{
        return await mongoDataMethods.createPost(args)
    },
    createAuthor : async (parent, args, {mongoDataMethods}) =>{
        return await mongoDataMethods.createAuthor(args)
    }
}

修改完成后重启服务,再执行之前的Mutation测试语句,就能正常获取到id、name、content等预期字段值了。
如果修改后仍有异常,可以先校验传入的authorId是否在Authors集合中真实存在,但从你当前返回全null的表现来看,核心问题就是resolver漏写return。


内容的提问来源于stack exchange,提问作者Nguyễn Điệp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 09:33:18