gpt4 book ai didi

node.js - makeExecutableSchema 语法错误 : Unexpected Name "User" (GraphQL)

转载 作者:太空宇宙 更新时间:2023-11-03 21:51:42 25 4
gpt4 key购买 nike

我需要一些帮助来解决 graphql 上的错误,我在这种情况下找不到任何内容。

我尝试分离不同的模式和解析器以使其更易于维护,但是当我使用 makeExecutableSchema 函数(来自 graphql-tools 包)时,会抛出“GraphQLError:语法错误:意外名称“用户””错误。

所以这是错误:

/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,
});

我真的找不到任何关于此类问题的信息,谢谢你帮助我:)

最佳答案

您看到该错误是因为您在用户类型定义中遗漏了 type 关键字。应该是:

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

还要注意,您的解析器正在根对象上调用 getUsers,这也可能会崩溃(我想您打算改用您的模型)。

关于node.js - makeExecutableSchema 语法错误 : Unexpected Name "User" (GraphQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52579095/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com