req.params
req.body
req.query
자주 쓰지만 햇갈려서 내 손으로 건들면 무조건 삑살나는 세가지
Express; req.params vs. req.body (velog.io) req.params VS req.query VS req.body (velog.io)
nodeJS - req.params, req.query, req.body :: 끄적끄적 (tistory.com)
여기서 많이 참고했습니다
req.params
// @route GET api/posts/:id
// @desc 'get' 메소드를 써서 파라미터 프로퍼티인 id값에 맞는 포스트를 가져오는 요청
router.get("/:id", auth, async (req, res) => { // 'id'라는 프로퍼티
try {
const post = await Post.findById(req.params.id);
res.json(post);
} catch (err) {
res.status(500).send("Server Error");
}
});
'api/posts/:id'라는 라우터 경로가 있을 때, 'id'는 'req.params.id'로 불러올 수 있다.
req 객체에 'parameter'라는 프로퍼티가 있고, 그 프로퍼티의 'id'라는 프로퍼티로 접근해 요청을 보낼 수 있는 것.
https://params/user/12341234 일 경우 12341234를 받는다.
더이상 사용하지 않는다고 하는 사람도 있는데 수업에서 까라면 까야지...
기억 못한 이유
라우터 안쓰고 맨날 app.js에 다 꼴아박아서
개선방법
라우터만 써보기
req.body
'request body'에 'key-value'의 데이터가 담긴 객체 프로퍼티이다. JSON 객체에 접근 가능하다.
JSON 등의 데이터를 담을때 사용한다. (주로 POST로 유저의 정보 또는 파일 업로드를 보냈을 때 )
요청 본문에 제출 된 키-값 데이터 쌍을 포함한다. 기본적으로 이는 정의되어 있지 않으며
express.json(), express.urlencoded()와 같은 미들웨어를 사용해야한다.
위의 말은 쉽게 설명하자면 req.body는 body-parser를 사용하기 전에는 default 값으로 Undefined 설정되기
때문에 body-parser를 사용하여 해결해야 오류를 뿜지 않는다.
req.body을 쓸때는 대부분 클라이언트에서 웹서버로 post요청을 보낼때가 많다.
거의 json/application 형식으로 데이터를 보내는데, 이때 같이쓰는 미들웨어는 다음과 같다.
const express = require('express');
const app = express();
app.use(express.json()) // for parsing application/json
app.use(express.urlencoded({ extended: true }))
// for parsing application/x-www-form-urlencoded
// 만약 extended: true이 안붙으면 특정 데이터형식만 쓸 수 있다고 들었다
{
"title": "무한도전".
"time": "종영"
}
이런 식으로 보내면
app.post('/', (req, res) => {
console.log(req.body);
/*
{
"title": "무한도전".
"time": "종영"
}
*/
return res.sendStatus(200);
})
이런식으로 받는 꼴
쿠키 연습할때 많이 쓴다, 잘 쓰기가 어려워서 그렇지
기억 못한 이유
태만
개선방법
로그인기능 골백번하기
req.query
해당 라우트 경로에서 각각의 'query string'을 파라미터로 갖는 객체 프로퍼티이다.
만약 'query parser'가 값이 없으면 빈 객체가 나올 것이고, 그렇지 않으면 해당에 맞는 'query parser'가 나올 것.
경로의 각 쿼리 문자열 매개 변수에 대한 속성이 포함 된 개체다.
(주로 GET 요청에 대한 처리)예를 들어 www.example.com/post/1/jun?title=hello! 이면,
title=hello! 부분을 객체로 매개변수의 값을 가져온다.
다시말해 경로의 각 쿼리 문자열 매개 변수에 대한 속성이 포함 된 개체다.
예를 들어 https://query/search?searchWord=구글검색 이면
searchWord 매개변수(parameter)의 구글검색 이라는 값(argument)을 가져온다.
개선방법
일단 쓰는 예쩨를 찾아봐야
'내배캠 TIL WIL > 내배캠 til' 카테고리의 다른 글
내배캠 til 44일차 500 error 정리 (0) | 2023.01.13 |
---|---|
내배캠 til 43일차 잦은 개발 실패 (0) | 2023.01.12 |
내배캠 41일차 til 간단한 로그인 기능 (0) | 2023.01.10 |
내배캠 TIL 40일차 cors개념 (0) | 2023.01.06 |
til 39일차 입력 데이터 형식 제한 (0) | 2023.01.06 |