<-->
본문 바로가기

Express 웹페이지 개발

라우터 -> 요청 편

반응형

요청에 대해 간단히 알아보았다.

 

express에서 요청 처리 과정

 

express의 요청 처리 구조

1. HTTP 요청이 들어온다.

2. 각 미들웨어를 순서대로 실행시킨다.

3. 라우터에서 HTTP 요청을 분석하여 적절한 처리를 한다.

 

 

 

 

라우터

유저가 원하는 정보(req)에 따라 알맞은 처리(콜백)를 안내를 해주는 안내자이다.

라우트가 잘 동작하기위해선 요청을 적절하게 분석해야 한다.

 

 

 

요청의 2가지 종류

 

POST 요청 본문 (req.body) HTTP form에서 "POST"메소드로 전송된 값
url 쿼리 (req.query) url에 동봉된 쿼리 ex) www.google.com/search?q=검색키워드

 

 

HTTP요청 가공하기

 

HTTP요청은 버퍼타입의 데이터로 들어오기 때문에

날 것의 값으로는 사용할수 없다

아래 두가지 메소드를 사용하여  요청을 가공 할 수 있다.

 

const express = require("express");
const app = express();

app.use(express.urlencoded({ //인코딩된 url을 parse해주고
    extended:false 
}));
app.use(express.json());
//Buffer String의 요청 값을 JSON 타입으로 변환 해준다

 

 

가공된 HTTP요청 값 확인

 

const express = require("express");
const app = express();

app.use(express.urlencoded({
    extended:false
}));
app.use(express.json());

//라우터
app.post("/",(req,res)=>{
    console.log(`POST 요청:`);
    console.log(req.body);
    console.log(`url 쿼리:`);
    console.log(req.query);
})

app.listen(3000);

 

"firstname=kim"이 POST 요청 본문,  ?a=b가 url 쿼리 

 

curl로 POST 요청과 url query를 동시에 해봤다.

 

parse 성공!

req.body.firstname 과 req.query.a 같은 방식으로

요청 데이터에 접근할수있다. 

 

p.s express generator에 코드 구현돼있으므로 역할만 알고 넘어가면 된다.