我正在使用 neo4j-graphql-js 库从架构中自动生成解析器。对于模式(员工)中的节点,我需要从休息调用中获取特定的节点属性(empid),因为由于隐私问题,我们计划从我们的 neo4j 数据库中删除该属性。我正在尝试为该字段编写自定义解析器。我已将 @neo4j 指令添加到架构中的该字段,以便 neo4j 忽略它。我需要进行一个休息调用,它接受一个名为 uid 的参数并返回相应的 empid。此 iuid 是 Employee 节点的属性,因此存在于我的 neo4j 数据库中。问题是在编写解析器时,根对象仅保存查询中访问的字段值。因此,如果 iuid 不是查询的一部分,我将无法在根 obj 中获取它的值。 这是我的员工节点:-
type Employee{
empId: String @neo4j_ignore
buCode: String
iuid: String
name: String
projectCode: String
roleCode: String
grade: String
mailid: String
duCode: String
txtmailid_new: String
这是我的解析器,我在哪里返回一个虚拟字符串而不是进行休息调用:-
const resolvers={
Employee: {
empId: async (obj, params, ctx, resolveInfo) => {
console.log(obj.iuid);
var result="dummy_emp_id";
return result;
}
}
};
const schema = makeAugmentedSchema({ typeDefs, resolvers} );
const server = new ApolloServer({ schema, context: { driver } });
server.listen(3003, '127.0.0.1').then(({ url }) => {
console.log(`GraphQL API ready at ${url}`);
});
这是我的查询:- {
Employee(first : 10)
{
empId
name
}
}
我想访问员工节点的所有字段的所有值,以便获取 iuid。控制台日志返回未定义,因为根对象只有查询的字段。我不知道是否有可能,如果没有,是否有任何解决方法?