DMBS는 데이터 저장 방법에 따라 몇 가지로 분류할 수 있다, 근데 난 2가지 밖에 모르니 간단히 알아볼거다. 기회가 되면 다음에 또 포스팅 해보도록하자 🐖💨
1. 관계형 데이터베이스
종류 - MySQL, MariaDB, Oracle, MS SQL Server
2. 객체지향 데이터베이스
종류 - Dynamo, Oracle NoSQL, MongoDB, Redis, Cassandra
몽고 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>
<% } %>