【发布时间】:2018-06-29 10:51:57
【问题描述】:
我有一个 node.js 服务器,它使用 sequelize 和 graphql 来提供 GraphQL 端点。
在 GraphQL 查询输出中,以某种方式与 belongsTo 链接的对象字段始终为 null。
这是我的 graphql typedef:
type Student {
id: ID!
name: String!
age: Int!
schoolClass: SchoolClass
}
type SchoolClass {
id: ID!
title: String!
}
sequelize 模型是这样定义的
const SchoolClass = sequelize.define('SchoolClass', {
title: Sequelize.STRING
});
const Student = sequelize.define('Student', {
name: Sequelize.STRING,
age: Sequelize.TINYINT
});
Student.belongsTo(SchoolClass);
解析器是
students (root, args, context) {
return models.Student.findAll({}, context);
}
查询:
{
students {
id, name, age, schoolClass { id }
}
}
典型输出:
{
"data": {
"students": [
{
"id": "1",
"name": "John",
"age": "18",
"schoolClass": null
}
]
}
}
有什么方法可以获取实际数据而不是空值?
【问题讨论】:
-
学生表有class_id/classId吗?
-
@VivekDoshi 是的,它有 SchoolClassId 字段并填写了适当的 ID(我将 Class 重命名为 SchoolClass,以免将此实体与 JS Class 混淆)
-
看看这个:github.com/mickhansen/graphql-sequelize,觉得这对你有帮助
标签: node.js sequelize.js graphql-js