findUnique는 User or null을 반환한다.
async function handler(req: NextApiRequest, res: NextApiResponse) {
const { phone, email } = req.body;
if (email) {
const user = await client.user.findUnique({
where: {
email,
},
});
}
return res.status(200).end();
}
async function handler(req: NextApiRequest, res: NextApiResponse) {
const { phone, email } = req.body;
let user;
if (email) {
user = await client.user.findUnique({
where: {
email,
},
});
if (!user) {
user = await client.user.create({
data: {
name: "Anonymous",
email,
},
});
}
//console.log(user);
}
return res.status(200).end();
}
만약 findUnique를통해 user를 찾지 못했다면 User를 생성한다.
이때 create를 사용한다.
planet scale 연결 명령어
pscale connect [Database name] --port [port number]
보통 3306은 쓰고 있다?고 한다 그러므로 port번호를 다른번호로 정해서 사용하도록 한다.
planet scale에 연결했으면 데이터베이스에 없는 이메일로 로그인해본다.
위의 사진과 같이 email을 새로 만들었다고 나온다.
-> console.log(user);의 결과임
async function handler(req: NextApiRequest, res: NextApiResponse) {
const { phone, email } = req.body;
let user;
if (email) {
user = await client.user.findUnique({
where: {
email,
},
});
if (!user) {
console.log("user를 찾지 못했음");
user = await client.user.create({
data: {
name: "Anonymous",
email,
},
});
}
console.log(user);
}
if (phone) {
user = await client.user.findUnique({
where: {
phone,
},
});
if (!user) {
console.log("user를 찾지 못했음");
user = await client.user.create({
data: {
name: "Anonymous",
phone,
},
});
}
console.log(user);
}
return res.status(200).end();
}
phone number도 email과 같이 해준다.
그러나 이렇게 하면 에러가 난다.
그 이유는 req.body로 받아오는 숫자는 문자열이기 때문이다. 그러므로 phone를 숫자로 바꿔줘야 한다.
async function handler(req: NextApiRequest, res: NextApiResponse) {
const { phone, email } = req.body;
let user;
if (email) {
user = await client.user.findUnique({
where: {
email,
},
});
if (!user) {
console.log("user를 찾지 못했음");
user = await client.user.create({
data: {
name: "Anonymous",
email,
},
});
}
console.log(user);
}
if (phone) {
user = await client.user.findUnique({
where: {
phone: +phone,
},
});
if (!user) {
console.log("user를 찾지 못했음");
user = await client.user.create({
data: {
name: "Anonymous",
phone: +phone,
},
});
}
console.log(user);
}
return res.status(200).end();
}
문자열 앞에 +를 붙이면 순자로 변경한다.
반대로 숫자 뒤에 + ""를 하면 문자열로 변경된다.