我正在尝试通过json网络令牌发送来使用GraphQL获取一些数据,但是我得到的结果是一个错误。
这是我的解析器的一部分,错误消息对此做了解决。
const resolvers = {
Query: {
me: async (token) => {
try {
const payload = verify(token, process.env.SECRET);
if (payload.userId) {
const me = await User.findById(payload.userId);
return me;
} else {
throw { message: 'Invalid token!' };
}
} catch (error) {
return error.message;
}
},
...
错误显示为:
"errors": [
{
"message": "Cannot return null for non-nullable field User.name.",
"locations": [
{
"line": 3,
"column": 5
}
],
"path": [
"me",
"name"
],
"extensions": {
"code": "INTERNAL_SERVER_ERROR",
...
用户的typeDef:
type User {
id: ID!
name: String!
email: String!
password: String!
}
和
extend type Query {
me(token: String!): User
}
我的错误在哪里!?
谢谢!
答案 0 :(得分:0)
const resolvers = {
Query: {
me: async (_, { token }) => {
try {
const payload = verify(token, process.env.SECRET);
if (payload) {
const me = await User.findById(payload.userId);
return me;
} else {
throw { message: 'Invalid token!' };
}
} catch (error) {
return error.message;
}
}
...
这就是解决方案。我有(token) => { ... }
,但我功能中应该是(_, { token }) => { ... }
!