
DB를 연동하는 법.

시간대 맞추는 법
timezone : 'Asia/Seoul'
이거 안돼.
SELECT @@global.time_zone, @@session.time_zone;
이걸로 지금 글로벌 타임 존이 잘 되어있는지 확인하고,
안되어있다면
SET time_zone = 'Asia/Seoul';
이걸로 지정 해줘.
그럼 다음
const connection = mysql.createConnection({
host: "localhost",
user: "root",
password: "root",
timezone: "Asia/Seoul",
database: "Youtube",
dateStrings: true,
});
dateStrings 를 찍어줘
이걸 이제 db와 연동을 하는건데,
//express 모듈 세팅
const express = require("express");
const router = express.Router();
const conn = require("../mariadb");
router.use(express.json()); //json형태로 된 body를 파싱하는 모듈
//http 외 모듈을 하나 사용할건데, 그게 json형태로 된 body를 파싱하는 모듈을 사용할거야.
let db = new Map();
var id = 1;
//로그인
router.post("/login", function (req, res) {
//email이 디비에 저장된 회원인지 확인
const { email, password } = req.body;
var loginUser = {}; //{}만 해도 객체가 됨
conn.query(
`SELECT * FROM users WHERE email = ?`,
email,
function (err, results, fields) {
if (results.length) {
loginUser = results[0];
if (loginUser.password == password) {
res.status(200).json({
message: `${loginUser.name}님 로그인 되었습니다.`,
});
} else {
res.status(400).json({
message: "비밀번호가 틀렸습니다.",
});
}
} else {
res.status(404).json({
message: "회원정보가 없습니다.",
});
}
}
);
// db.forEach(function (user, id) {
// if (user.userId === userId) {
// loginUser = user;
// }
// });
// if (isExist(loginUser)) {
// console.log("로그인 성공");
// if (loginUser.password === password) {
// console.log("비밀번호 일치");
// } else {
// console.log("비밀번호 불일치");
// }
// } else {
// console.log("존재하지 않는 계정입니다.");
// }
});
function isExist(loginUser) {
if (Object.keys(loginUser).length) {
return true;
} else {
return false;
}
}
// 회원가입
router.post("/join", function (req, res) {
console.log(req.body);
if (req.body == {}) {
res.status(400).json({
message: `회원가입에 실패하였습니다. 다시 시도해주세요.`,
});
} else {
const { email, name, password, contact } = req.body;
conn.query(
`INSERT INTO users (email, name, password, contact) VALUES (?, ?, ?, ?)`,
[email, name, password, contact],
function (err, results, fields) {
res.status(201).json(results);
}
);
}
});
// 회원 개별 조회
router
.route("/users")
.get(function (req, res) {
let { email } = req.body;
/*{id} 이게 뭐냐면! 너 id값 있던데, 그 id값 바로 꺼내서 id라는변수에 바로 담아줘. 라는 뜻이야*/
conn.query(
`SELECT * FROM users Where email = ?`,
email,
function (err, results, fields) {
res.status(200).json(results);
}
);
})
//회원 개별 탈퇴
.delete(function (req, res) {
let { email } = req.body;
conn.query(
`DELETE FROM users Where email = ?`, //DELETE는 WHERE과 무조건 함께 써야해 안그럼 날라가 통째로
email,
function (err, results, fields) {
res.status(200).json(results);
}
);
});
module.exports = router;
const express = require("express");
const router = express.Router();
const connection = require("../mariadb");
router.use(express.json());
router.post("/login", (req, res) => {
const { email, password } = req.body;
const sql = `SELECT * FROM users WHERE email=?`;
connection.query(sql, email, function (err, results) {
let loginUser = results[0];
if (loginUser && loginUser.password === password) {
res.status(200).json({
message: `${loginUser.name}님 로그인되었습니다.`,
});
} else {
res.status(404).json({
message: "이메일 또는 비밀번호가 틀렸습니다.",
});
}
});
});
router.post("/join", (req, res) => {
if (Object.keys(req.body).length === 0) {
res.status(400).json({
message: "입력 값을 다시 확인해주세요.",
});
} else {
const { email, name, password, contact } = req.body;
const sql = `INSERT INTO users (email, name, password, contact) VALUES (?, ?, ?, ?)`;
connection.query(
sql,
[email, name, password, contact],
function (err, results) {
res.status(201).json(results);
}
);
}
});
router
.route("/users")
.get((req, res) => {
let { email } = req.body;
const sql = `SELECT * FROM users WHERE email=?`;
connection.query(sql, email, function (err, results) {
res.status(200).json(results);
});
})
.delete((req, res) => {
let { email } = req.body;
const sql = `DELETE FROM users WHERE email=?`;
connection.query(sql, email, function (err, results) {
res.status(201).json(results);
});
});
module.exports = router;