였으나 동기들의 힘으로 완성한 베어미니멈:-)
아직 프론트엔드랑 연결을 못해서
주말에 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,
};