Routing은 클라이언트의 요청 조건(메서드, 주소 등)에 대응해 응답하는 방식
조건에 -> 응답 빙식!
클라이언트의 요청을 쉽게 처리 할 수 있게 도와주는 Express.js 기본 기능중 하나
요청을 처리 하는 Express.js 기본기능!
router.METHOD(PATH, HANDLER);
router
: express의 라우터를 정의하기 위해 사용METHOD
: HTTP Method를 나타낸다. (ex: get, post, put, delete …)PATH
: 실제 서버에서 API를 사용하기 위한 경로HANDLER
: 라우트가 일치할 때 실행되는 함수기본경로 /
const express = require('express'); //express 프레임워크를 변수에 넣는다.
const app = express(); //express 실행 후 app 객체를 만들어준다.
const port = 3000; //3000번 포트 설정
const goodsRouter = require('./routes/goods.js') //goods.js 를 가져온다.
//get 메서드로 api 를 실행시킨다.
app.get('/', (req, res) => {
res.send('Hello World!');
});
//api 경로가 추가 된 경우 모두 goodsRouter 로 통해서 간다.
app.use("/api", goodsRouter)
//실제로 서버를 실행하는 부분. app 객체를 통해서 3000번 포트로 접속했을 때만, 서버가 실행된다.
app.listen(port, () => {
console.log(port, '포트로 서버가 열렸어요!');
});
routes 폴더안에 js 파일을 만들어서 연결해주기.
/api/ 경로
const express = require("express"); //express 라이브러리를 변수에 할당.
//express.Router 함수를 router 변수에 할당
//API를 만들거나 Router 을 사용할 때 해당 변수를 사용한다.
const router = express.Router();
//반환받을 router 를 각각 만든다.
// 기본경로('localhost:3000/api/')로 들어왔었을 때(중요!), res.send 반환
router.get('/',(req, res) => {
res,send("defaul url for goods.js GET Method")
})
// 'localhost:3000/api/about' 경로로 들어왔을 때, res.send 반환
router.get('/about', (req,res) => {
res.send("goods.js about PATH")
})
//app.js에서 사용한 experss 는 객체 안의 get을 사용한것이기 때문에 라우터를 설정할 필요 없었는데
//goods.js 파일 안에 있는 라우터를 app.js에 가져다 주어야한다.
//app.js로 전달 방식
module.experss = router;
기본 경로 주석 처리 후 실행시
localhost:3000/ 해당 문서를 찾을 수 없다고 나옴.
localhost:3000/about 입력시 제대로 작동
localhost:3000/api/ 입력시 제대로 작동
localhost:3000/api/about 입력시 제대로 작동