2017-08-06 7 views
1

Ich habe einen einfachen express graphql Server bieten:Graphql: Muss Abfrage-String

const schema = require('./schema'); 
const express = require('express'); 
const graphqlHTTP = require('express-graphql'); 
const cors = require('cors') 
const bodyParser = require('body-parser'); 


const app = express(); 
app.use(cors()); 
app.use(bodyParser.urlencoded({ extended: true })); 
app.use(bodyParser.json()); 

app.use('/graphql', graphqlHTTP(req => { 
    return ({ 
    schema, 
    pretty: true, 
    }) 
})); 

const server = app.listen(9000, err => { 
    if (err) { return err; } 
    console.log(`GraphQL server running on http://localhost:${9000}/graphql`); 
}); 

Und meine Anfrage wie folgt aussieht:

enter image description here

Jede Hilfe?

(Bitte schließen Sie es nicht als Duplikat, weil die andere Post nicht genügend Informationen darüber, wie der Benutzer es gelöst)

+0

Versuchen Sie 'schema' zu ersetzen mit 'schema: schema,' –

+0

@ChrisG es würde Syntaxfehler werfen, wenn es die Syntax nicht verstanden hat. –

+0

@ChrisG In ES6 ist '{schema}' äquivalent zu '{schema: schema}'. Es ist syntaktischer Zucker! Gutes Auge, das sieht aus wie ein Käfer. – Ziggy

Antwort

0

Sie benötigen application/json in Ihren Content-Type-Header angeben - Sie haben derzeit text/plain. Sie haben die Body-Parser-Middleware auf dem Server integriert, aber sie benötigt den Header in Ihrer Anfrage, um zu wissen, wann sie die Antwort tatsächlich in JSON analysieren muss.