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