我的解析器函数当前返回以下错误: “必须在解析器上在类型用“ sqlTable”修饰的字段上调用joinMonster。” 这是解析器:
const joinMonster = require("join-monster").default;
const sql = require("mssql");
export const studentsPageResolver = async(obj, { filter }, context, info) => {
return {
students: joinMonster(
info,
context,
async sqlString => {
console.log(sqlString);
const results = await sql.query([sqlString]);
return results.recordset;
},
),
total: async ()=> {
const schools = filter.schoolIds.toString();
const result = await sql.query([`select count (*)
FROM [aaa].[dbo].[bbb] WHERE SchoolID IN (${schools})`])
const number = result.recordset[0][''];
return number;
}
}
}
我认为问题是students
字段正在寻找studentsPageResolver
的表,而不是存在的students
。
在我的根查询中,我使用像这样的解析器:
studentsPage: studentsPageResolver,
在架构中,其定义如下:
type studentsPage {
students: [StudentView!]
total: Int!
}
实现是这样的:
students (filter: JSON!): [StudentView!]!
studentsPage(filter: JSON): studentsPage
同样,我认为info
对象正在馈送错误的数据以加入Monster,然后怪物会寻找没有表的表。任何帮助表示赞赏。