Node.js

19. GET, DELETE, POST method

HJ76 2023. 4. 22. 17:17
GET method

- 클라이언트가 서버에게 데이터를 요청할 때 사용

URL에 데이터를 첨부하여 전송

- 응답코드는 200을 주로 사용

 

쿼리 스트링(Query String)

- 웹 요청(URI)에 추가적인 매개변수를 전달하기 위해 사용되는 문자열

- 일반적으로 URL의 끝에 물음표(?)를 사용하여 쿼리 스트링을 추가하고, 그 뒤에 키-값(key-value) 쌍을 & 기호로 구분하여 나열함

 

쿼리 스트링(Query String) 사용 예제
import express from "express";

const app = express();

// /posts로 요청
app.get("/posts", (req, res) => {
    console.log("posts를 호출!");
    console.log("path:", req.path);
    console.log("params:", req.params);
    console.log("query:", req.query);
    // 응답코드 200 응답
    res.sendStatus(200);
});

app.listen(8080);

 

응답된 페이지

http://localhost:8080/posts?number=1

 

터미널

query에 값이 들어옴

 

라우팅 파라미터(Route Parameters)

- Express.js와 같은 웹 프레임워크에서 사용되는 동적인 경로를 처리하는 기능

- 라우팅 경로에서 동적인 값이 들어갈 자리를 표시하고, 해당 값을 파라미터로 추출하여 사용할 수 있음

 

라우팅 파라미터(Route Parameters) 사용 예제
import express from "express";

const app = express();

// /posts로 요청(라우팅 파라미터로 값을 받음)
app.get("/posts/:id", (req, res) => {
    console.log("/posts/:id 호출!");
    console.log("path:", req.path);
    console.log("params:", req.params);
    console.log("query:", req.query);
    // 응답코드 200 응답
    res.sendStatus(200);
});


app.listen(8080);

 

응답 페이지

http://localhost:8080/posts/1

 

터미널

params에 값이 들어옴

 

배열을 사용하여 여러 개의 경로를 동시에 처리하는 예제

 

import express from "express";

const app = express();

// /mypage, /myroom로 요청(라우팅 파라미터로 값을 받음)
app.get(["/mypage", "/myroom"], (req, res) => {
    // 사용자에게 응답
    res.send("mypage 겸 myroom 페이지!")
})


app.listen(8080);

 

응답 페이지

http://localhost:8080/mypage

 

http://localhost:8080/myroom


DELETE method

- HTTP 프로토콜에서 제공하는 하나의 HTTP 요청 메소드

- 리소스를 삭제하기 위해 사용됨

- 서버에서 해당 리소스를 삭제하거나, 리소스의 상태를 변경할 수 있음

- 응답은 일반적으로 200 OK 또는 204 No Content와 같은 상태 코드를 사용

- GET 메소드와 요청 방식은 다르지만, URL은 GET 메소드를 사용할 때와 비슷한 형태를 가짐

 

DELETE method 예제
import express from "express";

const app = express();

// /post로 요청(라우팅 파라미터로 값을 받음)
app.delete("/posts/:id", (req, res) => {
    console.log("delete : /posts/:id 호출!");
    console.log(`${req.params.id} 번호가 삭제됨`);
    // 응답코드 200 응답
    res.sendStatus(200);
});


app.listen(8080);

 

포스트맨을 통해서 DELETE 요청

http://localhost:8080/posts/1

 

터미널


POST method

- 클라이언트가 서버에게 데이터를 제출(submit)하기 위해 사용
- 데이터를 요청 메시지의 본문(body)에 포함하여 전송
- 주로 로그인, 회원가입과 같은 곳에 사용
- 응답코드는  201을 주로 사용

 

POST method 예제
// package.json
// 복사하고 npm i 하면 모든 모듈 자동으로 설치됨

import express from "express";

const app = express();

// 클라이언트로부터 전송된 JSON 형식의 데이터를 파싱하여 JavaScript 객체로 변환해줌
app.use(express.json()); // body로 데이터를 받을 수 있음

app.post("/posts", (req, res) => {
    console.log(req.body); // 전송된 데이터 콘솔에 출력
    res.status(201).send("Create 되었습니다!"); // 응답코드와 메세지를 보냄
});

app.listen(8080);

 

포스트맨으로 전송

 

터미널 출력