Я только начал разбираться в GraphQL. Я использую GraphQL.js и выражаю. Прямо сейчас я пытаюсь создать простой пример, используя жестко запрограммированный JSON в качестве данных в моем файле javascript. Затем я хочу использовать промежуточное ПО промежуточного уровня для прослушивания HTTP-запросов через curl или бессонницу. В промежуточном программном обеспечении я хочу извлечь запрос с помощью парсера тела. Прямо сейчас у меня проблемы с резолверами.
Пожалуйста, взгляните на мой код.
var express = require('express');
var graphqlHTTP = require('express-graphql');
var { buildSchema, graphql } = require('graphql');
var bodyParser = require('body-parser');
var schema = buildSchema(`
type Product {
name: String!
price: Int!
}
type Query {
product(name: String): Product
}
`);
var products = {
'Mango': {
name: 'Mango',
price: 12,
},
'Apfel': {
name: 'Apfel',
price: 3,
},
};
resolvers = {
Query: {
product: (root, { name}) => {
return products[name];
},
},
};
var app = express();
app.use(bodyParser.text({ type: 'application/graphql' }));
app.post('/graphql', (req, res) => {
graphql(schema, req.body)
.then((result) => {
res.send(JSON.stringify(result, null, 2));
});
});
app.listen(4000);
Это не работает. Когда я отправляю запрос с помощью curl с
curl -XPOST -H "Content-Type: application / graphql" -d "{product (name: \" Apfel \ ") {name price}}" http://localhost:4000/graphql
Получаю ответ {"данные". {"product": null}}. Решатель не вызывается. Как мне это сделать правильно?