[수업노트] agora-states-server

daun·2022년 6월 21일
0

첫 솔로 프로젝트!

였으나 동기들의 힘으로 완성한 베어미니멈:-)
아직 프론트엔드랑 연결을 못해서
주말에 fetch까지 연결해보자!

app.js

const express = require("express");
const cors = require("cors");
const app = express();
const morgan = require("morgan");
const port = 3001;
const discussionsRouter = require("./router/discussions");
// TODO: cors를 적용합니다.
app.use(cors());
// TODO: Express 내장 미들웨어인 express.json()을 적용합니다.
app.use(express.json());
// TODO: /discussions 경로로 라우팅합니다.
app.use("/discussions", discussionsRouter);
app.get("/", (req, res) => {
  // TODO: 서버 상태 확인을 위해 상태 코드 200으로 응답합니다.
  res.status(200).send("Welcome");
  //throw "";
});
const server = app.listen(port, () => {
  console.log(`[RUN] My Agora States Server... | http://localhost:${port}`);
});
module.exports.app = app;
module.exports.server = server;

discussons.js

// TODO: discussions 라우터를 완성합니다.
const { discussionsController } = require("../controller/index.js");
const { findAll, findById, createOne, updateById, deleteById } =
  discussionsController;
const express = require("express");
const router = express.Router();
// TODO: 모든 discussion 목록을 조회하는 라우터를 작성합니다.
router.get("/", findAll);
// TODO: discussion 하나를 조회하는 라우터를 작성합니다.
router.get("/:id", findById);
// ADVANCED: discussion 하나를 생성하는 라우터를 작성합니다.
// ADVANCED: discussion 하나를 수정하는 라우터를 작성합니다.
// ADVANCED: discussion 하나를 삭제하는 라우터를 작성합니다.
module.exports = router;

index.js

const { agoraStatesDiscussions } = require("../repository/discussions");
// discussions 목록이 담긴 데이터
const discussionsData = agoraStatesDiscussions;

const discussionsController = {
  findAll: (req, res) => {
    // TODO: 모든 discussions 목록을 응답합니다.
    return res.status(200).json(discussionsData);
    //throw "";
  },
  findById: (req, res) => {
    // TODO: path parameter id를 가진 discussion을 응답합니다.
    //return res.status(200).send("hi");
    //일단 연결은 됐으
    //console.log(req.params);
    const params = req.params.id;
    //console.log(typeof params);
    const data = discussionsData.filter((diss) => diss.id === Number(params));
    console.log(data);
    if (data.length !== 0) {
      return res.status(200).json(data[0]);
    } else {
      return res.status(404).end();
    }
  },
  createOne: (req, res) => {
    // ADVANCED: 새로운 discussion을 생성합니다.
  },
  updateById: (req, res) => {
    // ADVANCED: path parameter id를 가진 discussion을 요청에 맞게 변경합니다.
  },
  deleteById: (req, res) => {
    // ADVANCED: path parameter id를 가진 discussion을 삭제합니다.
  },
};
module.exports = {
  discussionsController,
};
profile
Hello world!

0개의 댓글