express API의 query, params, body

citron03·2022년 2월 3일
0

html, css, js

목록 보기
22/43
post-custom-banner
  • express를 사용하여 서버를 만들면 URI를 통해서 API를 사용할 수 있다.
  • API 문서를 통해서 서버의 자원을 사용할 수 있다.
  • 그렇다면, 클라이언트가 원하는 데이터를 얻기 위해서 URL에 데이터를 추가적으로 더 주었을 때(URI), express에서 어떻게 이 데이터를 받아와 response할 수 있을까?

query

const express = require('express');
const router = express.Router();

router.get('/hi', findAll);
  • /hi?name=Kim&age=33 과 같은 URI에 접근하면, 서버에서 req.query 를 통해 데이터를 받을 수 있다.
  • query를 시작할 때 ?를 쓰고, 여러 데이터를 받을 때는 &로 데이터를 구분한다.
  • req.query는 객체로, req.query.name과 req.query.age에 접근하면, 각각 Kim과 33의 데이터를 얻을 수 있다.

params

const express = require('express');
const router = express.Router();

router.get('/:id', findById);
router.put('/:id', update);

// 생략
  • params의 데이터는 라우터에서 경로로 :id로 미리 지정되어 있다.
  • /idIs1234 와 같은 경로에 접근하면, 서버에는 req.params.id에 idIs1234가 들어있음을 알 수 있다.
  • put역시 params로 데이터를 전달할 수 있다.
  • params로 미리 라우터에 :id와 같이 이름을 설정해 놓으면, URL로 데이터를 전달하여 서버에서 정보를 받을 수 있다.
  • query와 다르게 ?id=쓰지 않아서 경로가 깔끔해질 수 있다.

body

const express = require('express');
const router = express.Router();

router.post('/', create);
router.put('/:id', update);
  • GET 메소드에서는 body를 사용하지 않지만, PUT이나 POST등을 사용할 때, 데이터는 body에 담겨져 온다.
  • req.body에 객체로 데이터가 담겨져 있다.
profile
🙌🙌🙌🙌
post-custom-banner

0개의 댓글