오늘 알아볼 것은..
- API 다른 파일로 분리시키기
- 라우터 파일에서 DB 변수 사용하는 방법
app.get("/shop/shirts", (요청, 응답) => {
응답.send("셔츠파는 페이지임");
});
app.get("/shop/pants", (요청, 응답) => {
응답.send("바지파는 페이지임");
});
이후 API를 보관할 폴더 하나를 프로젝트 루트 경로에 생성한 뒤 API를 모아둘 파일 하나를 만들어준다.

앞서 만들어져있던 API를 shop.js에 옮겨주며, 파일 최상단과 최하단에 아래 코드를 작성해준다.
최상단
const router = require("express").Router();
최하단
module.exports = router;
이후, app.get, app.post 이런 식으로 적혀있던 부분을
router.get이런 식으로 싹~ 바꿔주고..
약간 이렇게.. 샌드위치처럼 API를 끼워주자.

server.js로 돌아가서 해당 파일을 require해주자.app.use("/", require("./routes/shop.js"));

이후 화면이 잘 나오는지 테스트

잘 가져와진다.
- 상단에
const router = require('express').Router()작성- app.get 이런 식으로 적힌 것들 전부 router로 변경
module.exports = router로 추출해주기- 서버코드에서
app.use("/", require("/경로"))이런식으로 require
위의 /shop/어쩌구~로 쓰여져있던 API들에서 공통된 부분을 지워준 뒤

require해준 서버파일로 돌아가서

이렇게 넣어주면 동일하게 동작한다.
DB를 따로 분리시켜 다른 파일에서 받아와 쓰면 될 일이었다..!
database.js파일 하나를 생성해주고, DB를 연결해주는 부분을 분리시켜주었다.const { MongoClient } = require("mongodb");
const url = process.env.DB_URL;
let connectDB = new MongoClient(url).connect();
module.exports = connectDB;

이제 다른 곳에서 connectDB를 사용하면 저 긴 코드를 다 작성해주지 않아도 되는 것.

app.get('/board/sub/sports', checkLogin, (요청, 응답) => {
응답.send('스포츠 게시판')
})
app.get('/board/sub/game', checkLogin, (요청, 응답) => {
응답.send('게임 게시판')
})
아래는 server.js
function checkLogin(요청, 응답, next) {
if (!요청.user) {
응답.send("로그인하세요");
}
next(); // 미들웨어 코드 실행 끝났으니 다음으로 이동
}
app.use("/board/sub", checkLogin, require("./routes/board.js"));
아래는 routes>board.js
const router = require("express").Router();
let connectDB = require("./../database.js");
let db;
connectDB
.then((client) => {
db = client.db("forum");
})
.catch((err) => {
console.log(err);
});
router.get("/sports", (요청, 응답) => {
응답.send("스포츠 게시판");
});
router.get("/game", (요청, 응답) => {
응답.send("게임 게시판");
});
module.exports = router;