[Express 미들웨어 코드] app.use(), app.get(), Router()

const app = express.use()
app.get(path, function)
- HTTP GET메소드에 관한 Request만 다룬다.
ex) GET = 단순히 페이지를 가져오는 것, POST = 정보를 전달
- 최종 respond를 보낼 때 사용한다.
ex) res = 정보를 응답 ( res.send )
app.get('/user', function (req, res, next) {res.send('USER')} )
app.use(middleware), app.use(path, Router)
-
모든 종류의 HTTP request를 다룬다.
-
주로 미들웨어를 다루며, 큰 라우팅으로 나눌 때 사용된다.
3)세부적인 라우팅(http메소드)은 폴더 내 생성한 다른 라우팅 전담 파일에 맡긴다.
app.use('/user', function (req, res, next) {
console.log('Request Type:', req.method)
next()
}
// index.js
import globalRouter from "./routers/globalRouter";
import coursesRouter from "./routers/courseRouter";
import apiRouter from "./routers/apiRouter";
app.use("/", globalRouter);
app.use("/courses", coursesRouter);
app.use("/api", apiRouter);
app.Router.get(path, middleware)
-
Router단계의 미들웨어이다.
-
세부적인 라우팅을 할 때 사용된다.
-
라우터안에 라우터를 만들어 경로를 계층을 나눠 정리한다.
//apiRouter.js
import v1Router from "./api/v1Router";
import v2Router from "./api/v2Router";
const apiRouter = express.Router();
apiRouter.get("/documentation", documController);
apiRouter.use("/v1", v1Router);
apiRouter.use("/v2", v2Router);
export default apiRouter;
최종 페이지 생성
-
"/"
-
"/courses"
-
"/api/documentation"
-
"/api/v1"
-
"/api/v2"
-
index.js에는 use()를 통해 크게 라우팅하고,
-
세부적인 http method(get, post ... etc)는 router 폴더 내에 생성한 라우팅만 전담하는 apiRouter.js에서 설정한다.
app.use("/api") + router.get("/v1") = GET /api/v1
