作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 graphql-tools
中找不到任何地方文档如何使用 enum
输入到 makeExecutableSchema
的模式中的类型.任何人都知道这是如何做到的?
示例代码:
enum Color {
RED
GREEN
BLUE
}
type Car {
color: Color!
}
Color
的解析器是什么?看起来像?
最佳答案
您不会为 Color
编写解析器.这是一个简单的、可运行的示例:
const bodyParser = require('body-parser');
const { graphqlExpress, graphiqlExpress } = require('graphql-server-express');
const { makeExecutableSchema } = require('graphql-tools');
const app = require('express')();
const carsData = [
{color: 'RED'},
{color: 'GREEN'},
{color: 'BLUE'},
];
const typeDefs = `
enum Color {
RED
GREEN
BLUE
}
type Car {
color: Color!
}
type Query {
cars: [Car!]!
}
`;
const resolvers = {
Query: {
cars: () => carsData,
}
};
const schema = makeExecutableSchema({
typeDefs,
resolvers,
});
app.use('/graphql', bodyParser.json(), graphqlExpress({ schema }));
app.use('/graphiql', graphiqlExpress({ endpointURL: '/graphql' }));
app.listen(3000);
cars
在
GraphiQL 中查询 (
{cars {color}}
)您将在我们的数据中看到为每辆车返回的颜色。现在,更改
中的值之一数据 (不是 Enum 定义)到您未定义的颜色,例如
PINK
.再次运行查询,您将看到如下错误消息:
"Expected a value of type \"Color\" but received: PINK"
Car: {
color: () => 'RED'
}
BLACK
,查询将再次出错。
关于graphql - 如何使用 graphql-tools 使用或解析枚举类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45056347/
我是一名优秀的程序员,十分优秀!