我是graphql的新手,我有一个带有express的GraphQL服务器。我正在尝试从上下文值设置createdBy字段。我传递的userId如下所示
app.use('/graphql', auth, userAuthCheck, graphlHTTP(req => ({
schema: schema,
graphiql: true,
context: {
userId: req.user._Id,
},
})));我有一个类似这样的解析器来验证身份验证
const checkAuth = (resolve, source, args, context, info) => {
if (context.userId) {
return resolve(source, args, context, info);
}
throw new Error('You must be authorized');
};我使用graphql-compose-mongoose创建我的变异函数
解析器正确地验证身份验证:eventCreateOne(‘createOne’,checkAuth),
在创建事件时,我想用context中的值设置createdBy字段。我该怎么做呢?我想知道处理这种情况的最佳实践。
提前谢谢。
发布于 2020-06-17 15:35:09
这就是我解决这个问题的方法。
const checkAuth = (resolve, source, args, context, info) => {
if (context.userId) {
args.record.createdBy = context.user._id;
return resolve(source, args, context, info);
}
throw new Error('You must be authorized');
};在传递到下一个解析器之前,我简单地更新了args,它正确地插入了值。
https://stackoverflow.com/questions/62375332
复制相似问题