Node.js/NodeBird(ZeroCho)
Express Router 분리하기
느리지만 꾸준하게
2021. 11. 2. 14:36
아래 코드에서 api라는 것들을 안적어져도 될 거 같다. 주소중에서도 post와 같이 겹치는게 있을수도 있는데
// back 폴더의 app.js
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.send('hello express');
})
app.get('/', (req, res) => {
res.send('hello api');
});
app.get('/posts', (req, res) => {
res.json([
{ id: 1, content: 'hello'},
{ id: 2, content: 'hello2'},
{ id: 3, content: 'hello3'},
]);
})
// 라우터 증식
app.post('/post', (req, res) => {
res.json([{ id: 1, content: 'hello'},]);
});
app.delete('/post', (req, res) => {
res.json({ id: 1 });
});
app.listen(3065, () => {
console.log('서버 실행 중');
});
back folder안에다가 routes폴더를 만들고 그 안에 post.js를 만들어준다.
노드에서는 import export를 안쓴다. require를 쓴다. 그리고 module.exports를 쓴다.
// routes 폴더안에 post.js
const express = require('express');
const router = express.Router();
router.post('/post', (req, res) => {
res.json([{ id: 1, content: 'hello'},]);
});
router.delete('/post', (req, res) => {
res.json({ id: 1 });
});
export default router;
// app.js
const express = require('express');
// 라우터 분리.
const postRouter = require('./routes/post')
const app = express();
app.get('/', (req, res) => {
res.send('hello express');
})
app.get('/', (req, res) => {
res.send('hello api');
});
app.get('/posts', (req, res) => {
res.json([
{ id: 1, content: 'hello'},
{ id: 2, content: 'hello2'},
{ id: 3, content: 'hello3'},
]);
})
// 라우터가 분리가 된다.
app.use(postRouter);
app.listen(3065, () => {
console.log('서버 실행 중');
});
그리고 app.js에서 아래와 같이 '/post를 추가해서 변경시켜주고
app.use('/post', postRouter);
app.listen(3065, () => {
console.log('서버 실행 중');
});
routes폴더의 post.js에서는 post 부분을 지워준다.
router.post('/', (req, res) => {
res.json([{ id: 1, content: 'hello'},]);
});
router.delete('/', (req, res) => {
res.json({ id: 1 });
});
post가 prefix로 붙어서 중복되는 것을 앞으로 뽑아 준것이다.
postRouter애들은 실제로는 아래와 같다.
router.post('/', (req, res) => { // POST / post
res.json([{ id: 1, content: 'hello'},]);
});
router.delete('/', (req, res) => { // DELETE / post
res.json({ id: 1 });
});
<출처 조현영: [리뉴얼] React로 NodeBird SNS 만들기>
[리뉴얼] React로 NodeBird SNS 만들기 - 인프런 | 강의
리액트 & 넥스트 & 리덕스 & 리덕스사가 & 익스프레스 스택으로 트위터와 유사한 SNS 서비스를 만들어봅니다. 끝으로 검색엔진 최적화 후 AWS에 배포합니다., 새로 만나는 제로초의 리액트 노드버
www.inflearn.com