我剛開始進入GraphQL。我正在使用GraphQL.js並進行表達。現在我正在嘗試構建一個簡單的示例,使用硬編碼的JSON作爲我的JavaScript文件中的數據。然後,我想使用快遞中間件通過捲曲或失眠來收聽HTTP請求。在中間件中,我想使用body-parser來提取查詢。現在我在解析器遇到問題。GraphQL。如何編寫解析器
請看看我的代碼。
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查詢與
捲曲-XPOST -H 「內容類型:應用程序/ graphql」 -d 「{產品(名稱:\」 APFEL \ 「){名價格}}」 http://localhost:4000/graphql
我得到響應{「data」。 {「product」:null}}。解析器不會被調用。我怎樣才能正確地做到這一點?
謝謝!那就是訣竅。 –