MongoDB

babypig·2022년 9월 2일
1

Node.js

목록 보기
6/12
post-thumbnail

MongoDB를 들어 가기전 💬

DB의 종류

DMBS는 데이터 저장 방법에 따라 몇 가지로 분류할 수 있다, 근데 난 2가지 밖에 모르니 간단히 알아볼거다. 기회가 되면 다음에 또 포스팅 해보도록하자 🐖💨

  • 관계형 데이터베이스
  • 객체지향 데이터베이스

1. 관계형 데이터베이스

종류 - MySQL, MariaDB, Oracle, MS SQL Server

데이터 이름 달고 - 실제 데이터 기입, (3차원의 데이터를 잘 못다룸)
행과 열을 가지는 표 형식 데이터를 저장하는 형태라 생각하면 된다.
대부분 SQL 이라는 언어를 써야함.
컴활 1급 해보신분들은 SQL 쿼리문등을 접하여 기억하실텐데 난 잊어먹었다😢

2. 객체지향 데이터베이스

종류 - Dynamo, Oracle NoSQL, MongoDB, Redis, Cassandra

객체(object)'라는 것을 중심으로 객체 그대로를 데이터베이스의 데이터로 저장하는 것이다.
데이터 입출력에만 신경 쓸수잇어서 좋다.

몽고 DB 접속하기

npm install mongodb

let db;

const MongoClient = require("mongodb").MongoClient;
MongoClient.connect('몽고DB URL', (에러, client) => {
    if (에러) {
      return console.log(에러);
    }
  
     db = client.db("데이터베이스폴더");
  //저장할 데이터는 object 형식으로 {key : value, _id: 0}
     db.collection("test").insertOne("저장할데이터", (에러, 결과) => {
      console.log("저장완료");
    });
  
  
    app.listen(5000, () => {
      console.log("listening on 5000");
    });		
})

잘들어가구있음 ✌

몽고DB url에 아이디:비번 입력필요

mongodb+srv://DB계정아이디:DB계정패스워드@cluster0-qaxa3.mongodb.net/?retryWrites=true&w=majority

서버에 get 요청 하는법

const express = require("express");
const app = express();

//서버를 오픈할 포트번호, 서버 오픈 시 실행할 코드
app.listen(5000, () => {
  console.log("listening on 5000");
});
//누군가  /경로로 방문을하면 응답을 띄워주자
app.get("/pet", (요청, 응답) => {
  응답.send("펫용품 쇼핑할 수 있는 페이지입니다.");
});

app.get("/pet2", (요청, 응답) => {
  // __dirname은 현재 파일의 경로를 뜻합니다.
  응답.sendFile(__dirname + "/index.html");
});

서버에 POST 요청 하는법


//input에 정보는 어딨나???

//1. body-parser가 필요함 - 요청 데이터 해석을 쉽게 도와줌
//2. form 데이터의 경우 input들에 name이 필요함
//3. 요청.body라 하면 요청햇던 form에 적힌 데이터 수신 가능

const bodyParser = require("body-parser");
app.use(bodyParser.urlencoded({ extended: true }));

//누군가 /경로 로 post 요청을하면 ?? 해주세요
app.post("경로", (요청, 응답) => {
  응답.send("전송완료");
  console.log(요청.body);
});

//db에 저장 시키기

app.post("/add", (요청, 응답) => {
  응답.send("전송완료");
  db.collection("test").insertOne(
    { 할일: 요청.body.title, 날짜: 요청.body.date, _id: 3 },
    (에러, 결과) => {
      console.log("저장완료");
    }
  );
});

잘들어가구있음 ✌

DB에 저장된 데이터 가져오기

*👉 view engine 사용하기

npm install ejs


/**
 * list 로 GET 요청으로 접속하면
 * 실제 Db에 저장된 데이터들이 들어이는 HTML을 보여줌
 * ejs 파일들의 위치는 views 폴더 내에 넣어야함
 */

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

app.get("list", (요청, 응답) => {
  응답.render("list.ejs");
});

    <h2>서버에서 가져온 할일 리스트</h2>

    <% for (let i = 0; i < 데이터들.length; i++) { %>
    <h4>할일 : <%= 데이터들[i].할일 %></h4>
    <p>날짜 : <%= 데이터들[i].날짜 %></p>
    <% } %>
profile
babypig

0개의 댓글