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

Node.js GraphQL报错:Cannot set property 'name' of undefined 求排查

问题分析与修复方案

我帮你定位到了schema.js里的两处错误,正是它们导致了这个TypeError:

错误1:RootQuery实例化缺少new关键字

你定义RootQuery的时候直接调用了GraphQLObjectType,但它是一个类,必须用new关键字来创建实例。没有new的话,函数内部的this会是undefined,所以才会抛出"Cannot set property 'name' of undefined"的错误。

错误2:book字段的type使用了字符串而非变量

你把book字段的type写成了'BookType'(字符串),但这里需要直接引用你之前已经定义好的BookType变量,字符串不是有效的GraphQL类型定义。

修正后的RootQuery代码:

const RootQuery = new GraphQLObjectType({
    name:'RootQueryType',
    fields: {
        book:{
            type: BookType, // 这里改成引用变量
            args: {id:{type:GraphQLString}},
            resolve(parent,args) {
                return dummyData.find(book => book.id === args.id)
            }
        }
    }
});

把这两处改完之后,你的Node应用应该就能正常启动了,接下来就可以在/graphql端点测试你的查询啦。

内容的提问来源于stack exchange,提问作者Boris Grunwald

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:49:23