기본
라우팅(Routing)은 URL(또는 경로) 및 특정한 HTTP 요청 메소드(GET, POST 등)인 특정 엔드포인트(URL)에 대한 클라이언트 요청에 애플리케이션이 응답하는 방법을 결정하는 것을 말한다.
각 라우트는 하나 이상의 핸들러 함수를 가질 수 있으며, 이러한 함수는 라우트가 일치할 때 실행된다.
다음은 라우트의 기본 구조이다.
app.METHOD(PATH, HANDLER)
- app: express의 인스턴스
- METHOD: HTTP 요청 메소드
- PATH: 서버에서의 경로
- HANDLER: 라우트가 일치할 때 실행되는 함수
다음과 같이 기본 세팅을 한 후 예제를 실행해 보겠다 .
const express = require("express");
const app = express();
app.listen(3000);
app.listen(3000) 명령어는 local host의 포트번호 3000번과 연결된다.
req.params
라우터의 매개변수이다. /products/:n 경로가 있을 때, :n 속성을 req.params.n으로 사용할 수 있다.
이 때 n은 "문자열"로 받아온다.
// http://localhost:3000/products/1
app.get("/products/:n", function (req, res) {
res.json({
num: req.params.n,
});
});
req.query
경로의 각 쿼리 문자열 매개 변수에 대한 속성이 포함 된 개체다. (주로 GET 요청에 대한 처리)
req.query도 마찬가지로 "문자열"로 받아온다.
http://localhost:3000/watch?v=2TrgSww4Wf8&t=855s 이라는 URL이 있을 때 '?'뒤에 나오는 v와 t속성을 뽑아서 쓰려면 다음과 같이 코드를 작성하면 된다.
// http://localhost:3000/watch?v=2TrgSww4Wf8&t=855s
app.get("/watch", function (req, res) {
const q = req.query;
// console.log(q);
res.json({
video: q.v,
timeline: q.t,
});
});
그냥 req.query만 뽑으면 중괄호 안에 전체 속성이 출력된다.
+) 객체 비구조화로 수정된 코드
app.get("/watch", function (req, res) {
const { v, t } = req.query;
console.log(v);
console.log(t);
res.json({
video: v,
timeline: t,
});
});
참고 링크
Express 4.x - API 참조
Express 4.x API express() Creates an Express application. The express() function is a top-level function exported by the express module. var express = require('express') var app = express() Methods express.json([options]) This middleware is available in Ex
expressjs.com