각각 필요한 route를 folder에 정리하고 각각의 folder를 routes/index.js에서 한번에 선언한 다음 routes/index.js 에서 선언한 routes를 src/index.js에 express에다가 적용하면 routes가 한번에 적용이 된다.
무슨말인지 모르니 일단 코드를 보자 ㅋㅋㅋ
// routes/users.js
const express = require('express');
const signUp = require('./signUp');
const login = require('./login');
const refresh = require('./refresh');
const { seeProfile, modifyProfile } = require('./profile');
const authJwt = require('../../utils/auth');
const router = express.Router();
router.post('/signup', signUp);
router.post('/login', login);
router.get('/profile', authJwt, seeProfile);
router.patch('/profile', authJwt, modifyProfile);
router.post('/refresh', refresh);
module.exports = router;
요런식으로 각각 module과 관련된 routes를 정리해준다.(middleware를 사용해서 더 간소화 해주자.)
users뿐만 아니라 items, cartItems, orders 등등등
그리고 routes/index.js
에 한꺼번에 선언
// routes/index.js
const express = require('express');
const usersRouter = require('./users');
const itemsRouter = require('./items');
const cartRouter = require('./cartItem');
const deliveryRouter = require('./delivery');
const ordersRouter = require('./orders');
const { uploadToS3, uploadImage } = require('../utils/upload');
const router = express.Router();
router.use('/users', usersRouter);
router.use('/items', itemsRouter);
router.use('/cart', cartRouter);
router.use('/delivery', deliveryRouter);
router.use('/orders', ordersRouter);
router.post('/upload', uploadToS3.single('image'), uploadImage);
module.exports = router;
그러고 이 routes를 루트 index.js안에 선언된 express와 연결하면 된다.
//src/index.js
const express = require('express');
const morgan = require('morgan');
const cors = require('cors');
const router = require('./routes');
const server = express();
const port = process.env.PORT;
server.use(express.urlencoded({ extended: false }));
server.use(express.json());
server.use(cors());
if (process.env.NODE_ENV === 'development') {
server.use(morgan('dev'));
} else {
server.use(morgan('tiny'));
}
server.use('/', router);