Nodejs router
안녕하세요. 개발자 개발 까마귀입니다.
오늘은 Nodejs router에 대해 알려드리겠습니다.
저번에 routing이 뭔지 알려드렸죠?
"라우팅은 URI(또는 경로) 및 특정한 HTTP 요청 메소드(GET, POST 등)인 특정 엔드 포인트에 대한 클라이언트 요청에대한 응답을 말합니다." 라고요
그리고 저번에
const express = require("express");
const app = express();
app.get("/", function(req, res) {
res.send("hello world");
})
app.listen(8082, function() {
console.log("8082 server start");
})
이렇게 app.get으로 routing을 했습니다. 이렇게 해도 되지만
express에서는 router를 지원해줍니다.
그러면 router를 왜 쓸까요? router를 쓰는 이유는 경로에 대하여 체인 가능한 라우트 핸들러를 작성할 수 있습니다.
일단 예시를 볼까요?
여러분은 홈페이지 주소에 /main에 관한 페이지에 대한 get, post
그리고 게시글에 해당하는 /post 페이지에 대한 get, post
뭐 로그인도 있을거고 또 /signup도 있을겁니다.
이거를 계속
app.get('/main', function(){....})
app.post('/main/upload', function(){....})
app.get('/main/userLoad', function(){....})
앞에 main을 붙이면 매우 힘들겠죠?
우선 코드를 보면 이해가 빠를겁니다.
routes/main.js
const express = require("express");
const router = express.Router();
router.get('/', function(req, res) {
res.send('hello');
});
module.exports = router;
main에 관한 애들을 모아둘 main.js를 만들고 그거를 다른 데에도 쓸수있게 module.exports를 해줍니다.
index.js
const express = require("express");
const app = express();
const main = require('./routes/main');
app.use('/main', main);
app.listen(8082, function() {
console.log("8082 server start");
})
그런 다음 index.js에서 app.use를 해서 계속 중복이되는 주소를 적어주고 그 뒤에 routes를 등록을 해줍니다.
이러면 계속 반복해서 /main을 적어줄 필요가없습니다. 이런거를 미들웨어라고합니다. 중간에 처리를 하니깐요.
이렇게하면 오타와 중복을 해결할 수 있습니다. 두 마리 토끼를 잡는거죠 ㅎㅎ
이렇게 해도 되고 저는 controller.js랑 render하는 render.js를 만들어서 render하는 애들 따로 controller하는 애들 따로해서 나누기도합니다. 각자 스타일이 있으니깐 스타일에 맞게 하면 됩니다. ㅎㅎ
감사합니다.
'프로그래밍 > Backend' 카테고리의 다른 글
[Backend] 그런 에러 핸들링 아키텍처로 괜찮은가 (0) | 2022.01.25 |
---|---|
[Backend] Node.js 하위 폴더 읽기 및 파일 찾기 (0) | 2021.09.15 |
[Backend] Nodejs ejs 적용 (0) | 2021.03.29 |
[Backend] express routing 원리 (0) | 2021.03.14 |
[Backend] Nodejs MVC 패턴 (0) | 2021.02.14 |
댓글