Я создал преобразователь и файл graphql о создании пользователя.
Тип данных кажется подходящим, и у меня асинхронная обработка, но результат всегда возвращает null. Не знаю почему.
- Resolver (createAccount. js)
import { prisma, generateToken, changePhoneNumber } from "../../../utils";
import bcrypt from "bcryptjs";
export default {
Mutation: {
createAccount: async (_, args) => {
const {
username,
password,
password2,
email,
phoneNum,
bio,
avatarUrl,
} = args;
if (password !== password2) {
throw new Error("two password aren't same each other");
}
const encryptPw = await bcrypt.hash(password, 10);
const newPhoneNumber = await changePhoneNumber(phoneNum, "+82");
const user = await prisma.user.create({
data: {
username,
email,
password: encryptPw,
phoneNum: newPhoneNumber,
bio,
avatarUrl,
},
});
const token = generateToken(user.id);
return { token, user };
},
},
};
- Файл GraphQL (createAccount.graphql)
type Mutation {
createAccount(
username: String!
email: String!
password: String!
password2: String!
phoneNum: String!
bio: String
avatarUrl: String
): AuthPayload!
}
type AuthPayload {
token: String
user: User
}
import { PrismaClient } from "@prisma/client";
import jwt from "jsonwebtoken";
export const prisma = new PrismaClient();
export const changePhoneNumber = (phoneNum, locationNum) => {
var leftStr = locationNum;
var rightStr = phoneNum.slice(1, phoneNum.length);
var newStr = leftStr + rightStr;
return newStr;
};
export const generateToken = (id) => jwt.sign({ id }, process.env.JWT_SECRET);
type User {
id: ID!
avatarUrl: String
username: String!
email: String!
password: String!
phoneNum: String!
emailSecret: String
phoneSecret: String
bio: String
rooms: [Room]
createdAt: String
messages: [Message]
sender: [User]
receiver: [User]
}
Я читаю ответы на другие подобные вопросы, но большинство сказали, что я должен соответствовать типу данных или асинхронной обработке.
( Почему запрос GraphQL возвращает null? )
Но в моем коде использовался код для асинхронной обработки, и я думаю, что соответствовал типу данных. Почему этот код всегда возвращает null?
Кроме того, в дополнение к этой мутации, все остальные запросы, мутации и подписки возвращают значения NULL