티스토리 뷰

항해/주특기 1주차

[node js] 2주차 - 2

타올이 2022. 1. 23. 01:20
반응형

Routing 이해 및 Router 학습

    1. Routing이란?
    Routing은 클라이언트의 요청 조건(메서드, 주소 등)에 대응해 응답하는 방식을 말합니다.
    1. Router란?
  • 여기서 말하는 Router는 클라이언트의 요청을 쉽게 처리 할 수 있게 도와주는 Express.js 기본 기능(객체)중 하나입니다.
    1. 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 미들웨어를 통해 처리됩니다.
    1. 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
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
링크
글 보관함