Синтаксическая ошибка в makeExecutableSchema: неожиданное имя «Пользователь» (GraphQL) - PullRequest
0 голосов
/ 30 сентября 2018

Мне нужна помощь в устранении ошибки в graphql, я ничего не могу найти в этом деле.

Я пытался разделить разные схемы и средства разрешения, чтобы упростить поддержку, но когда я используюФункция makeExecutableSchema (из пакета graphql-tools), ошибка «GraphQLError: Синтаксическая ошибка: неожиданное имя« Пользователь »» - throw.

Итак, вот ошибка:

/Users/thomasblanquet/EIP_Routs/API/routs-api/node_modules/graphql/language/parser.js:153
  throw unexpected(lexer);
  ^
GraphQLError: Syntax Error: Unexpected Name "User"
    at syntaxError (/Users/thomasblanquet/EIP_Routs/API/routs-api/node_modules/graphql/error/syntaxError.js:24:10)
    at unexpected (/Users/thomasblanquet/EIP_Routs/API/routs-api/node_modules/graphql/language/parser.js:1490:33)
    at parseDefinition (/Users/thomasblanquet/EIP_Routs/API/routs-api/node_modules/graphql/language/parser.js:153:9)
    at many (/Users/thomasblanquet/EIP_Routs/API/routs-api/node_modules/graphql/language/parser.js:1523:16)
    at parseDocument (/Users/thomasblanquet/EIP_Routs/API/routs-api/node_modules/graphql/language/parser.js:113:18)
    at Object.parse (/Users/thomasblanquet/EIP_Routs/API/routs-api/node_modules/graphql/language/parser.js:48:10)
    at Object.buildSchemaFromTypeDefinitions (/Users/thomasblanquet/EIP_Routs/API/routs-api/node_modules/graphql-tools/dist/generate/buildSchemaFromTypeDefinitions.js:19:33)
    at makeExecutableSchema (/Users/thomasblanquet/EIP_Routs/API/routs-api/node_modules/graphql-tools/dist/makeExecutableSchema.js:26:29)
    at Object.<anonymous> (/Users/thomasblanquet/EIP_Routs/API/routs-api/graphql/schema.js:15:18)
    at Module._compile (internal/modules/cjs/loader.js:689:30)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! routs-api@1.0.0 start: `node server.js`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the routs-api@1.0.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

И здесьмой код:

Для схемы пользователя:

const User = `
User {
  _id: Int!
  username: String!
  email: String!
}

extend type Query {
    users: [User]
}
`;

module.exports = User;

Для резольвера (модель создана с использованием sequelize, и я использую Apollo-Server-Express):

const User = require('../../server/models/user')
const Messages = require('../messages');

const resolvers = {
  Query: {
    users(parent, args, context, info) {
      parent.getUsers()
    },
};

module.exports = resolvers;

И, наконец, код для объединения схем и распознавателей:

const { makeExecutableSchema } = require('graphql-tools');
const resolvers = require('./resolver');
const User = require('./user/schema');

const Query =
`type Query {
  _empty: String
}`;

const Mutation =
`type Mutation {
  _empty: String
}`;

module.exports = makeExecutableSchema({
  typeDefs: [Query, Mutation, User],
  resolvers,
});

Я действительно не могу найти что-либо об этой проблеме, спасибо за помощь:)

1 Ответ

0 голосов
/ 30 сентября 2018

Вы видите эту ошибку, потому что вы оставили ключевое слово type в своем определении типа пользователя.Это должно быть:

type User {
  _id: Int!
  username: String!
  email: String!
}

Также помните, что ваш распознаватель вызывает getUsers для корневого объекта, который также, вероятно, взорвется (я полагаю, вы хотели использовать вместо этого свою модель).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...