req.params란?
- 라우터의 매개변수
- 예를 들어 /:id/:name 경로가 있으면 ":id"속성과 ":name"속성을 req.params.id, req.params.name으로 사용할 수 있다.
www.example.com/post/1/jun 일 경우 1과 jun을 받는다.
router.get('/:id/:name', (req, res, next) => {
console.log(req.params)
});
req.query
- 경로의 각 쿼리 문자열 매개 변수에 대한 속성이 포함 된 개체다. (주로 GET 요청에 대한 처리)
- 예를 들어 www.example.com/post/1/jun?title=hello! 이면, title=hello! 부분을 객체로 매개변수의 값을 가져온다.
await axios.get(`www.example.com/post/1/jun?title=hello!`)
await axios({
method: "get",
url: `www.example.com/post/1/jun`,
params: { title: 'hello!' },
})
app.use(express.urlencoded({ extended: false }));
router.get('/:id/:name', (req, res, next) => {
console.log(req.params)
console.log(req.query)
});
req.body
- JSON 등의 바디 데이터를 담을때 사용한다.
- 주로 POST로 유저의 정보 또는 파일 업로드(formdata)를 보냈을 때 사용
- 요청 본문에 제출 된 키-값 데이터 쌍을 포함한다.
await axios.post('www.example.com/post/1/jun', {
name: 'nomad',
age: 11,
married: true
});
await axios({
method: "post",
url: `www.example.com/post/1/jun`,
data: {
name: 'nomad',
age: 11,
married: true
},
})
app.use(express.json());
router.post('/:id/:name', (req, res, next) => {
console.log(req.params)
console.log(req.body)
});