mvc 폴더 생성

스크린샷 2023-11-19 오후 6.36.49.png

controller 파일 생성

스크린샷 2023-11-19 오후 6.37.49.png

server.js에 있던 user 관련 로직을 users controller 에 옮겨주기

모델 생성 하기

스크린샷 2023-11-19 오후 6.42.21.png

const users = [
  { id: 0, name: "Jack" },
  { id: 1, name: "Jennifer" },
];

module.exports = users;

컨트롤러 생성 하기

const model = require("../models/users.model");

function getUsers(req, res) {
  res.json(model);
}

function getUser(req, res) {
  const userId = Number(req.params.userId);
  const user = model(userId);

  if (user) res.status(200).json(user);
  else res.status(404).json({ error: "No User Found" });
}

function postUser(req, res) {
  if (!req.body.name) return res.status(400).json({ error: "Missing user name" });

  const newUser = { name: req.body.name, id: users.length };

  model.push(newUser);

  res.json(newUser);
}

module.exports = { getUsers, getUser, postUser };

server.js 에서 users controller들 가져오기

const usersController = require("./controllers/users.controller");

app.get("/users", usersController.getUsers);

app.get("/users/:userId", usersController.getUser);

app.post("/users", usersController.postUser);

posts controller 생성하기

function getPost(req, res) {
  res.send("<div><h1>Post Title</h1><p>This is a post</p></div>");
}

module.exports = { getPost };

server.js 에서 posts controller들 가져오기

const postsController = require("./controllers/posts.controller");

app.post("/posts", postsController.getPost);