Backend/X.com

controller /

AIHYEONJI 2025. 4. 27. 12:37

* 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);
}

'Backend > X.com' 카테고리의 다른 글

MySQL  (3) 2025.05.07
data /  (1) 2025.04.27
app.js  (0) 2025.04.27