typeDefs 必须只包含字符串、文档、模式或函数,得到对象
Posted
技术标签:
【中文标题】typeDefs 必须只包含字符串、文档、模式或函数,得到对象【英文标题】:typeDefs must contain only strings, documents, schemas, or functions, got object 【发布时间】:2021-10-28 06:10:12 【问题描述】:我正在开发一个 express apollo 服务器,并构建了所有 graphql 类型,如下所示:
我正在使用“graphql-tools/load-files”和“graphql-tools/merge”来合并所有类型。我的 index.js 文件就像下面这样:
const path = require('path');
const loadFilesSync = require('@graphql-tools/load-files');
const mergeTypeDefs = require('@graphql-tools/merge');
const types = loadFilesSync(path.join(__dirname, '.'), recursive: true )
const typeDefs = mergeTypeDefs(types);
module.exports = typeDefs ;
当我运行我的项目时,得到以下错误:
Error: typeDefs must contain only strings, documents, schemas, or functions, got object
代码在以前的项目中正常运行。但是当我开始一个新项目删除以前的节点模块和新的 npm 安装时,我遇到了这个奇怪的问题。我怎样才能摆脱它?
【问题讨论】:
【参考方案1】:我已经找到了问题的解决方案。我不得不删除 recursive: true 并添加 extensions: ['gql'] 。这里是:
const path = require('path');
const loadFilesSync = require('@graphql-tools/load-files');
const mergeTypeDefs = require('@graphql-tools/merge');
const typesArray = loadFilesSync(path.join(__dirname, '.'), extensions: ['gql'] );
const typeDefs = mergeTypeDefs(types);
module.exports = typeDefs ;
【讨论】:
以上是关于typeDefs 必须只包含字符串、文档、模式或函数,得到对象的主要内容,如果未能解决你的问题,请参考以下文章