안녕하세요

MongoDB - 데이터베이스에 데이터 추가하기 본문

스터디/코딩애플

MongoDB - 데이터베이스에 데이터 추가하기

sakuraop 2022. 12. 31. 21:41

데이터베이스에 자료 추가하기

client.connect((에러) => {
  db.collection("post").insertOne({ name: "You", nationality: "KOR" }, (에러, 결과) => {
    console.log("저장완료");
  });
});
 => post collection에 { name: "You", nationality: "KOR" } 데이터를 추가합니다.

데이터가 추가된 상태

id를 정해주지 않으면 임의의 id를 지정해주는데,

데이터를 추가할 때 직접 id를 추가하려면 _id: 1 형태로 추가하면 됩니다.

  db.collection("post").insertOne({ _id: 1, name: "You", nationality: "KOR" }, (에러, 결과) => {

schema

스키마라 하여 데이터의 타입을 정해주지 않아도 MongoDB에서 자동으로 지정해줍니다.


post 요청을 통해 유저가 입력한 정보를 데이터베이스에 저장하려면 이렇게

app.post("/add", (요청, 응답) => {
  응답.send(`/add로 POST 전송 성공했다. 요청.body.title = ${요청.body.title}`);
  db.collection("post").insertOne({ _id: 1, 제목: 요청.body.title, 날짜: 요청.body.date }, (에러, 결과) => {
    console.log("저장완료");
  });
});

EJS로 HTML에서 데이터 뿌리기

EJS란?

EJS는 Node.js에서 많이 이용하는 템플릿 엔진입니다.
JavaScript를 탑재하여 EJS 문법을 통해서 서버의 데이터를 넣을 수 있는 html 파일입니다.
 
 
 
 

EJS 라이브러리를 설치합니다.

$ npm i --save-dev ejs
 
 
 
 
 

server.js에서 아래와 같이 ejs를 view engine으로 등록합니다.

app.set("view engine", ejs);

 

 

 

views 폴더를 만들고 안에 파일명.ejs 형태로 파일을 생성합니다.

 

 

 

ejs 파일에서 서버의 데이터를 이용하려면 아래와 같이 변수를 감싸줍니다.

    <h3>할일 : <%= 변수이름 %></h3>
    <p>날짜 : <%= 변수이름 %></p>

 

 

 

데이터베이스에서 받아온 데이터를 ejs파일로 보내려면 render메서드를 사용합니다.

app.get("/list", (요청, 응답) => {
  // 모든 데이터 가져오기
  db.collection("post").find().toArray((에러, 결과) => {
      console.log(결과);
      응답.render("list.ejs", { 보낼데이터이름: 결과 });
    });
});
 
 => post collection에서 모든 데이터를 찾아 array 형태로 담은 결과를 
list.ejs 파일을 렌더할 때 {보낼데이터이름: 결과} 형태로 데이터를 전달해 주세요. 

 

 

 

 

EJS에서 JS 문법쓰는 법 (반복문으로 짜는 법 예시)

    <% for (let i = 0; i< posts.length; i++) { %>
      <h3>할일 : <%= posts[i].제목 %></h3>
      <p>날짜 : <%= posts[i].날짜 %></p>
    <% } %>

=> 코드 줄마다 <% %> 로 감싸고, 데이터를 가져올 때는 <%=데이터변수명 %> 형태로 가져올 수 있다.