Graphql 无法设置属性';clientMutationId';“未定义”的定义;错误
outputfields永远不会被调用,不确定我是否以正确的方式执行操作,从mutateAndGetPayload方法返回数据时不会调用resolve函数Graphql 无法设置属性';clientMutationId';“未定义”的定义;错误,graphql,relayjs,graphql-js,Graphql,Relayjs,Graphql Js,outputfields永远不会被调用,不确定我是否以正确的方式执行操作,从mutateAndGetPayload方法返回数据时不会调用resolve函数 outputFields: { token: { type: GraphQLString, resolve: (token) => token } }, 我认为您需要从mutateAndGetPayload方法返回一些内容。这可能是一个承诺。尝试返回userprof.findOne。解决
outputFields: {
token: {
type: GraphQLString,
resolve: (token) => token
}
},
我认为您需要从mutateAndGetPayload方法返回一些内容。这可能是一个承诺。尝试返回userprof.findOne。解决方案
mutateAndGetPayload: (credentials) => {
console.log('credentials', credentials);
userprof.findOne({email: credentials.email}).exec(function(err, r) {
if(!r) {
return new Error('no user')
} else if(r) {
if(r.password != credentials.password) {
return new Error('password error');
} else {
var token = jwt.getToken(r);
console.log(token);
return {token};
}
}
});
}
可能重复:“outputfields永远不会被调用”--你怎么知道的?@AhmadFerdous如果它会被调用,那么它应该以图形ql打印令牌当你放置
console.log(令牌)时会看到什么输出字段的resolve:(token)=>token
中的code>debug语句?您是否看到具有标记属性的对象?因为您正在mutateAndGetPayload
函数中返回一个对象。
token: {
type: GraphQLString,
resolve: ({token}) => token
}
},
mutateAndGetPayload: (credentials) => {
return UserProf.findOne({ email: credentials.email }).then((r) => {
if (!r) {
return new Error('no user');
} else if (r) {
if (r.password != credentials.password) {
return new Error('password error');
} else {
return { token: jwt.getToken(r) };
}
}
});
}