티스토리 뷰
반응형
Routing 이해 및 Router 학습
-
- Routing이란?
- Router란?
- 여기서 말하는 Router는 클라이언트의 요청을 쉽게 처리 할 수 있게 도와주는 Express.js 기본 기능(객체)중 하나입니다.
- Router 사용해보기
- routes 폴더를 생성해 goods.js라는 파일을 생성합니다.
- express 에서 제공되는 Router 함수를 사용해 Router를 생성합니다.
더보기
// app.js
const express = require('express');
const router = express.Router();
-
- 그리고 예시로 엔드포인트를 작성해보겠습니다.
더보기
// routes/goods.js
router.get('/', (req, res) => {
res.send('this is home page');
});
router.get('/about', (req, res) => {
res.send('this is about page');
});
-
- Router 미들웨어를 사용하겠다고 작성합니다.
더보기
app.use("/api", [goodsRouter]);
-
- 이제부터 http://localhost:3000/ 뒤에 /api 로 시작되는 주소는 routes/goods.js 에 있는 Router 미들웨어를 통해 처리됩니다.
- Router와 미들웨어의 차이
- Router와 미들웨어는 서로 다른 방식처럼 보이지만 Router는 미들웨어 기반으로 구현된 객체이므로 미들웨어와 동일한 방식으로 작동됩니다.
app.js
const express = require('express');
const { nextTick } = require('process');
const app = express();
const port = 3000;
// 4) app.js파일은 goods.js의 존재를 모르기에 적어줌, 확장자는 생략가능
// routers는 폴더명 goods는 파일명, ./는 상대경로 app.js있는 곳 안에서 라는 뜻
const goodsRouter = require('./routes/goods')
const requstMiddleware = (req,res,next)=>{
console.log('Request URL:', req.originalUrl, " - ", new Date());
next();
};
app.use(requstMiddleware);
// 6) router도 미들 웨어이기 때문에 이곳에 적어줌, /api는 api가 붙었을 때 goodsRouter가 실행된다는 뜻
app.use("/api",goodsRouter)
app.get('/',(req,res)=>{
res.send("Hello world");
});
// 1) listen은 서버를 켜는 것
app.listen(port, ()=>{
console.log(port, "포트로 서버 연결!")
});
goods.js
const express = require('express')
// router 대문자 주의
const router = express.Router();
// 7) "/"는 "api/"가 숨겨진 것
router.get("/", (req,res)=>{
res.send('this is root page')
});
router.get("/goods", (req,res)=>{
res.send('this is goods page')
});
// 5) app.js에서 goods.js의 require를 하려면 모듈로 내보야함
module.exports = router;
반응형
'항해 > 주특기 1주차' 카테고리의 다른 글
[node js] 2주차 -4 (0) | 2022.01.23 |
---|---|
[node js] 2주차 -3 (0) | 2022.01.23 |
[node js] 2주차 - 1 (0) | 2022.01.22 |
[node js] 1주차 - 마음가짐 (0) | 2022.01.22 |
[node js] 1주차 - 3 (0) | 2022.01.22 |