GraphQL报错:MockList is not a constructor问题求助
解决apollo-server@3.12.0中MockList is not a constructor错误
问题原因
apollo-server@3.x 版本已不再内置导出MockList,该工具现在归属@graphql-tools/mock包维护,直接从apollo-server导入会导致找不到构造函数的错误。
解决方案
1. 安装依赖包
执行以下命令安装@graphql-tools/mock:
npm install @graphql-tools/mock --save-dev # 或者使用yarn yarn add @graphql-tools/mock -D
2. 修改导入路径
将原来从apollo-server导入MockList的代码:
import { MockList } from 'apollo-server';
替换为从@graphql-tools/mock导入:
import { MockList } from '@graphql-tools/mock';
3. 正常使用MockList
修改后即可正常创建模拟列表数据,示例代码:
const mocks = { Query: { users: () => new MockList(1, () => ({ id: () => 'user_1', name: () => 'Test User' })) } };
验证依赖配置
确保你的package.json中包含以下依赖(版本可根据实际情况调整):
{ "dependencies": { "apollo-server": "^3.12.0" }, "devDependencies": { "@graphql-tools/mock": "^9.0.0" } }
报错堆栈说明
你遇到的MockList is not a constructor错误,本质是因为apollo-server@3.12.0的导出中已不存在MockList,导入后得到的是undefined,尝试作为构造函数调用自然会触发错误。
内容的提问来源于stack exchange,提问作者Elshan
相关产品推荐
相关产品推荐

