* controller / auth.mjs
import * as authRepository from "../data/auth.mjs";
/*
// 회원가입
export async function SignUp(req, res, next) {
const { userid, password, name, email } = req.body;
const data = await authRepository.create(userid, password, name, email);
res.status(200).json(data);
}
// 로그인
export async function Login(req, res, next) {
const {user,password}= req.body
const login = await authRepository.login(userid, password);
if (!login) {
res.status(404).json({ meassage: `${userid}와 ${password}가 틀렸습니다.` });
} else {
res.status(200).json(login);
}
}
*/
export async function signup(req, res, next) {
const { userid, password, name, email } = req.body;
const users = await authRepository.createUser(userid, password, name, email);
if (users) {
res.status(201).json(users);
}
}
export async function login(req, res, next) {
const { userid, password } = req.body;
const user = await authRepository.login(userid, password);
if (user) {
req.session.user = user
res.status(200).json(`${userid}님 로그인 완료!`);
} else {
res
.status(404)
.json({ message: `${userid}님 아이디 또는 비밀번호를 확인하세요!` });
}
}
export async function me(req, res, next) {
if (req.session.user) {
res.json(req.session.user);
} else {
res.status(401).send("로그인이 필요합니다.");
}
}
export async function logout(req, res, next) {
req.session.destroy((err) => {
if(err){
return res.status(500).send("로그아웃 중 오류 발생")
}
res.send("로그아웃 되었습니다.");
});
}
* controller / post.mjs
import * as postRepository from "../data/post.mjs";
// 모든 포스트 / 해당 아이디에 대한 포스트를 가져오는 함수
// query : key=value값
// 예시) /post?userid=apple --> q:apple
export async function getPosts(req, res, next) {
const userid = req.query.userid;
const data = await (userid
? postRepository.getAllByUserid(userid)
: postRepository.getAll());
res.status(200).json(data);
}
// params : url안에 포함되는 값
// /post/1 --> 1
// id를 받아 하나의 포스트를 가져오는 함수
export async function getPostId(req, res, next) {
const id = req.params.id;
const data = await postRepository.getAllById(id);
if (data) {
res.status(200).json(data);
} else {
res.staus(404).json({ message: `${id}의 포스트가 없습니다.` });
}
}
// 포스트를 생성하는 함수
export async function createPost(req, res, next) {
const { userid, name, text } = req.body;
const posts = await postRepository.create(userid, name, text);
res.status(201).json(posts);
}
// 포스트 수정하는 함수
export async function updatePost(req, res, next) {
const id = req.params.id;
const text = req.body.text;
const post = await postRepository.update(id, text);
if (!post) {
res.status(404).json({ message: `${id}번의 포스트를 찾을 수 없습니다.` });
} else {
res.status(200).json(post);
}
next();
}
// 포스트 삭제하는 함수
export async function deletePost(req, res, next) {
const id = req.params.id;
const posts = await postRepository.remove(id);
res.status(200).json(posts);
}