🪢node/node 실습

mern 로그인 관리기능(1)(node실습)[rest api, req.body란?]

하얀성 2024. 2. 20. 10:38

rest api를 위한 환경 조성

 

1. 환경조성 express mongoose dotenv nodemon 설치

 

2. npm run dev로 실행

"dev" : "nodemon server.js",

 

3. mongoose doc 설명대로 db와 연결후, model 생성.

https://mongoosejs.com/docs/index.html

 

Mongoose v8.1.3: Getting Started

Getting Started First be sure you have MongoDB and Node.js installed. Next install Mongoose from the command line using npm: npm install mongoose --save Now say we like fuzzy kittens and want to record every kitten we ever meet in MongoDB. The first thing

mongoosejs.com

 


rest api 

get(조회) : db에 등록되어 있는 내용 , 혹은 서버의  res 반응을 조회해서 출력(다른 이전 등록 내용 모두 출력).

post(생성) : db에 새로운 내용 등록 , 새로운 그 등록 내용만 res로 전달함. 

put(수정) : db의 한개의 row를 모두 수정하는데 사용.(수정 대상이 된 raw의 수정 전 상태를 보여줌)

 

*출력 코드는 모두 res.json({note : note}) 기준임

 // Respond with it
  res.json({ note: note });
});

get

 

post

 

put

put의 res.json은 수정 전, 상태이지만, db에 들어가보면 잘 수정되었음을 확인.

 


req.body란?

req.body가 클라이언트에서 등록하는 새 정보

아.. body-parser가 데이터를 파싱할 수 있도록 하는 라이브러리라 배웠는데. 이제는 body-parser 라이브러리 설치 없이,

아래 처럼 express.json() 통해서 '파싱'이 가능하다.

// express.json() 미들웨어를 사용하여 JSON 요청 본문을 파싱
app.use(express.json());

app.post('/your-endpoint', (req, res) => {
  // 이제 req.body를 통해 JSON 형식으로 전송된 데이터에 접근할 수 있음
  console.log(req.body);
  res.json({ message: 'Data received successfully' });
});

req.body는 클라이언트가 POST 요청을 통해 서버에 보낸 데이터의 본문(body)을 포함한다. 이 예시에서 클라이언트는 새로운 노트를 생성하기 위해 title body 데이터를 JSON 형식으로 서버에 전송하고, 서버는 이 데이터를 받아서 MongoDB 데이터베이스에 새 노트를 저장한다.

 

모델 사용: 서버는 req.body에서 얻은 데이터를 기반으로 데이터베이스 모델의 인스턴스를 생성한다. 예를 들어, Mongoose를 사용하는 경우, Note.create({ title: req.body.title, body: req.body.body })와 같이 모델을 사용하여 데이터베이스에 새로운 문서(document)를 생성한다.

 

app.post("/notes", async (req, res) => {
  //Get the set in data off request body
  const title = req.body.title;
  const body = req.body.body;

  //Create a note with it
  const note = await Note.create({
    title: title,
    body: body,
  });

  //respond with the new note
  res.json({ note: note });
});

 

 

Note.create()는 두 가지 주요 작업을 수행합니다:

  • 데이터베이스에 새 문서 생성: 제공된 데이터(req.body)를 기반으로 Note 모델의 새 문서를 생성합니다.
  • 생성된 문서 저장: 생성된 새 문서를 MongoDB 데이터베이스에 저장합니다.

 


express란?

Express는 Node.js의 기능을 확장하여 웹 서버 구축을 간소화하고, 개발 과정을 보다 편리하게 만들어주는 역할을 합니다. 이를 통해 개발자는 HTTP 프로토콜을 더욱 효과적으로 활용하고, 클라이언트와 서버 간의 데이터 교환을 원활하게 할 수 있습니다.

 

Express가 제공하는 주요 기능은 다음과 같습니다:

  • 라우팅: 클라이언트로부터 오는 다양한 URL 경로와 HTTP 메소드(예: GET, POST)에 대한 요청을 적절한 처리 로직으로 연결해줍니다.
  • 미들웨어: 요청과 응답 사이에 실행되는 함수들을 통해 로깅, 바디 파싱, 쿠키 관리 등의 기능을 쉽게 추가할 수 있습니다.
  • 에러 핸들링: 에러 처리를 위한 효율적인 메커니즘을 제공하여, 애플리케이션의 안정성과 신뢰성을 높입니다.
  • 템플릿 엔진: 서버 사이드에서 HTML을 동적으로 생성하기 위한 다양한 템플릿 엔진을 지원합니다.