【发布时间】:2017-08-24 16:46:42
【问题描述】:
我目前正在使用 nodejs 探索 graphQL,我正在尝试构建一个简单的示例,如下所示:
var express = require('express');
var graphqlHTTP = require('express-graphql');
var { buildSchema } = require('graphql');
var schema = buildSchema(`
type Query {
getUser(jid: String ): [User],
albums:[Album],
}
type User{
name:String,
image:String,
albums:[Album]
}
type Album{
name:String,
image:String
}
`);
class Album {
constructor() { }
name() { return 'ablum name' }
image() { return 'image url' }
}
class User {
constructor(jid) {
this.jid = jid;
console.log(this.jid);
}
ablums() {
return [new Album, new Album];
};
name() {
console.log(this.jid);
return "name";
}
image() { return "url"; }
}
var root = {
getUser: function ({ jid }) {
return [new User(jid), new User(jid)];
},
};
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');
我期待一个带有两个用户数组的 JSON 结果,每个数组都包含另外两个专辑数组,其中包含它的名称和图像。但是我在专辑字段中得到了 null,它应该显示两个专辑的数组,其中包含名称和图像字段。
{
"data": {
"getUser": [
{
"name": "name of abc is michael",
"image": "url",
"albums": null
},
{
"name": "name of abc is michael",
"image": "url",
"albums": null
}
]
}
}
请帮忙!我对 graphQL 完全陌生,我认为这是一项非常有用的技术!
【问题讨论】:
-
请编辑您的问题以正确缩进您的代码。它很难阅读,因此很难为您提供帮助。