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)을 가져온다.

 

 

개선방법

 

일단 쓰는 예쩨를 찾아봐야

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+ Recent posts