카테고리 없음

Restful API and Node.JS

Break-Limits 2023. 6. 9. 16:27

https://www.vskills.in/certification/tutorial/restful-api-and-node-js-2/

 

Restful API and Node.JS - Tutorial

Go back to Tutorial Representational State Transfer is a software architectural style that defines a set of constraints to be used for creating Web services. Web services that conform to the REST architectural style, termed RESTful Web services, provide in

www.vskills.in

 

 

 

res.writehead , res.write , res.send , res.end의 차이점은?

 

res.writeHead, res.write, res.send, res.end은 Express.js에서 HTTP 응답을 보내는 데 사용되는 메서드들입니다. 각각의 메서드는 다음과 같은 차이점이 있습니다:

res.writeHead(statusCode[, statusMessage][, headers]): HTTP 응답의 헤더를 설정합니다. statusCode는 HTTP 상태 코드를 나타내며, statusMessage는 선택적으로 상태 메시지를 지정할 수 있습니다. headers는 선택적으로 추가 헤더를 설정할 수 있는 객체입니다. 이 메서드를 사용하여 응답 헤더를 직접 설정할 수 있습니다.

res.write(chunk[, encoding][, callback]): 응답 본문의 일부를 작성합니다. chunk는 보낼 데이터를 나타내는 문자열 또는 버퍼입니다. encoding은 선택적으로 데이터의 인코딩을 지정할 수 있으며, callback은 데이터를 작성한 후 호출되는 콜백 함수입니다. 이 메서드를 여러 번 호출하여 응답 본문을 조각조각 작성할 수 있습니다.

res.send([body]): HTTP 응답을 보내고 종료합니다. body는 응답 본문에 해당하는 데이터입니다. 문자열, 버퍼, 객체, 배열 등 다양한 유형의 데이터를 인자로 받을 수 있습니다. 이 메서드는 적절한 Content-Type 헤더를 설정하고 응답 본문을 자동으로 보내기 때문에 편리하게 사용할 수 있습니다.

res.end([data][, encoding][, callback]): HTTP 응답을 종료합니다. data는 선택적으로 응답 본문에 해당하는 데이터를 나타내며, encoding은 데이터의 인코딩을 지정할 수 있습니다. callback은 응답 종료 후 호출되는 콜백 함수입니다. 이 메서드를 사용하면 명시적으로 응답을 종료하고 추가 데이터를 보낼 수 없습니다.

res.send는 res.write와 res.end를 조합한 형태로, 응답을 보내고 종료하는 역할을 수행합니다. res.send는 자동으로 Content-Type을 설정하고 응답 본문을 보내기 때문에 일반적인 경우에 유용하게 사용됩니다. res.writeHead와 res.write는 더 세밀한 제어가 필요한 경우에 사용할 수 있습니다. res.end는 응답을 종료하기 위해 명시적으로 호출되어야 하는 경우에 사용됩니다.

 

 

res.json

 

res.json은 Express.js에서 JSON 형식의 데이터를 응답으로 보내는 메서드입니다. 이 메서드를 사용하면 JSON 데이터를 보낼 때 Content-Type 헤더가 자동으로 설정되고, 데이터가 JSON 형식으로 직렬화됩니다.

res.json 메서드는 다음과 같은 방식으로 사용됩니다:

javascript
Copy code
res.json([body]);
body는 응답 본문에 해당하는 JSON 데이터입니다. 이 데이터는 자바스크립트 객체, 배열 또는 기타 JSON-serializable한 값일 수 있습니다. res.json은 res.send와 비슷한 역할을 수행하지만, 자동으로 Content-Type을 application/json으로 설정하여 JSON 형식으로 데이터를 보내는 것을 간편하게 처리해줍니다.

예를 들어, 다음과 같이 res.json을 사용하여 JSON 데이터를 응답으로 보낼 수 있습니다:

javascript
Copy code
router.get("/", function (req, res) {
  const data = {
    name: "John Doe",
    age: 30,
    city: "New York",
  };

  res.json(data);
});
위의 코드에서 / 경로에 대한 GET 요청이 들어오면, JSON 형식의 데이터인 data 객체가 응답으로 보내집니다. 이 데이터는 자동으로 JSON으로 직렬화되고, Content-Type 헤더가 application/json으로 설정됩니다. 클라이언트는 이 JSON 데이터를 받아서 처리할 수 있습니다.

 

 

post 요청으로 새로운 유저 정보 등록 

더보기

// post  new user
// post 요청으로 전달받은 req.body 객체를 기존 파일인 users.json에 추가.
router.post("/addUser", function (req, res) {
  // 기존 파일의 내용 읽어오기
  fs.readFile(filePath, "utf8", function (err, data) {
    if (err) {
      console.error("파일 읽기 오류:", err);
      return res.status(500).send("서버 오류");
    }

    let users = {};
    try {
      // 기존 파일 내용을 JSON 형식으로 파싱
      const parsedData = JSON.parse(data);
      users = { ...parsedData, ...req.body };
    } catch (err) {
      console.error("JSON 파싱 오류:", err);
      return res.status(500).send("서버 오류");
    }

    // 새로운 유저 추가

    // 변경된 유저 정보를 파일에 쓰기
    fs.writeFile(filePath, JSON.stringify(users), function (err) {
      if (err) {
        console.error("파일 쓰기 오류:", err);
        return res.status(500).send("서버 오류");
      }

      // 성공적으로 추가되었음을 응답
      res.status(200).send("유저 추가 성공");
    });
  });
});

 

 

 

 

새 폴더.zip
0.02MB