typeDefs должны содержать только строки, документы, схемы или функции, объект got

#node.js #express #graphql #express-graphql

Вопрос:

Я работаю на сервере express apollo и структурировал все типы graphql, как показано ниже:

введите описание изображения здесь

Я использую «graphql-инструменты/загрузочные файлы» и «graphql-инструменты/слияние» для объединения всех типов. Мой index.js файл похож на belwo:

 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 };
 

Когда я запускаю проект I, я получаю следующую ошибку:

 Error: typeDefs must contain only strings, documents, schemas, or functions, got object
 

Код нормально работал в предыдущем проекте. Но когда я начал новый проект, удалив предыдущие модули узла и установив новый npm, я столкнулся с этой странной проблемой. Как я могу от этого избавиться ?

Ответ №1:

Я нашел решение этой проблемы. Мне пришлось удалить { рекурсивный: true } и добавить { расширения: [‘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 };