2017-06-25 2 views
0

Nach diesem Tutorial keine Aufzeichnungen erhalten: http://graphql.org/graphql-js/mutations-and-input-types/graphql Mutation Arbeit ok, aber ich kann

var express = require('express'); 
var graphqlHTTP = require('express-graphql'); 
var { buildSchema } = require('graphql'); 

// Construct a schema, using GraphQL schema language 
var schema = buildSchema(` 
    input MessageInput { 
    content: String 
    author: String 
    } 

    type Message { 
    id: ID! 
    content: String 
    author: String 
    } 

    type Query { 
    getMessage(id: ID!): Message 
    } 

    type Mutation { 
    createMessage(input: MessageInput): Message 
    updateMessage(id: ID!, input: MessageInput): Message 
    } 
`); 

// If Message had any complex fields, we'd put them on this object. 
class Message { 
    constructor(id, {content, author}) { 
     this.id = id; 
     this.content = content; 
     this.author = author; 
    } 
} 

// Maps username to content 
var fakeDatabase = {}; 

var root = { 
    getMessage: function ({id}) { 
     if (!fakeDatabase[id]) { 
      throw new Error('no message exists with id ' + id); 
     } 
     return new Message(id, fakeDatabase[id]); 
    }, 
    createMessage: function ({input}) { 
     // Create a random id for our "database". 
     var id = require('crypto').randomBytes(10).toString('hex'); 

     fakeDatabase[id] = input; 
     return new Message(id, input); 
    }, 
    updateMessage: function ({id, input}) { 
     if (!fakeDatabase[id]) { 
      throw new Error('no message exists with id ' + id); 
     } 
     // This replaces all old data, but some apps might want partial update. 
     fakeDatabase[id] = input; 
     return new Message(id, input); 
    }, 
} 

var app = express(); 
app.use('/graphql', graphqlHTTP({ 
    schema: schema, 
    rootValue: root, 
    graphiql: true, 
})); 
app.listen(4000,() => { 
    console.log('Running a GraphQL API server at localhost:4000/graphql'); 
}); 

ich Produkte wie Tutorial lehren erstellen:

mutation { 
    createMessage(input: { 
    author: "andy2", 
    content: "hope is a good thing2", 
    }) { 
    id 
    } 
} 

erhalte ich die Antwort:

{ 
    "data": { 
    "createMessage": { 
     "id": "d08ae7d739110c04f657" 
    } 
    } 
} 

aber keine Informationen auf der Seite, wie die Daten zu bekommen, habe ich versucht, mit dieser:

{ 
    getMessage(id:"d08ae7d739110c04f657") {  
    } 
} 

aber ich bekomme Fehler:

TypeError: Failed to fetch 

eine Idee?

Antwort

0

Haben Sie versucht, es mit Grafik (i) QL?

In der Abfrage können Sie die Parameter der Nachricht fehlen, die Sie sollten holen möchte, wie folgt aussehen:

query { 
 
    getMessage(id: "d08ae7d739110c04f657") { 
 
    content 
 
    author 
 
    } 
 
}

Verwandte Themen