Я использую библиотеку neo4j-graphql- js для автоматического создания резолверов из схемы. Для узла в схеме (Сотрудник) мне нужно получить определенное свойство узла (empid) из вызова rest, поскольку мы планируем удалить это свойство из нашей базы данных neo4j из-за проблем с конфиденциальностью. Я пытаюсь написать собственный распознаватель для этого поля. Я добавил директиву @ neo4j в это поле в схеме, чтобы neo4j игнорировал ее. Мне нужно сделать вызов rest, который принимает параметр с именем uid и возвращает coridponding empid. Этот iuid является свойством узла Employee и присутствует в моей базе данных neo4j. Проблема заключается в том, что при написании распознавателя объекты root содержат только те полевые значения, которые приняты в запросе. Поэтому, если iuid не является частью запроса, я не могу получить его значение в root 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. Журнал консоли возвращает неопределенное значение, так как объект root имеет только запрашиваемое поле. Я не знаю, даже если это возможно, и если нет, то есть ли какое-нибудь решение этой проблемы?