프로그래밍/Weekly I Learned

2023.10.25+ env패턴

타코코딩 2023. 10. 25. 13:12
import mysql from "mysql2";

const pool = mysql.createPool({
  host: "localhost",
  port: "3306",
  user: "root",
  password: " ",
  database: " ",
});

export const db = pool.promise();
import express from "express";

import * as newsController from "../controller/newsController.js";

const router = express.Router();
router.use(express.json());
router.use(express.urlencoded({ extended: true }));

// list 들어가면 화면에 뉴스목록뿌려줌
router.get("/", newsController.getList);
//뉴스등록
router.post("/register", newsController.AddNews);

router.get("/:nid", newsController.getDetail);

router.get("/:nid/reply", newsController.getReply);

router.post("/reply", newsController.createReply);

export default router;
import * as newsRepository from "../repository/newsRepository.js";

export async function getList(req, res) {
  const rows = await newsRepository.getList();
  res.render("list.ejs", { newsList: rows });
}

export async function AddNews(req, res) {
  let { url, title, content } = req.body;
  const result = await newsRepository.AddNews(url, title, content);
  if (result == "success") res.redirect("/news");
}

export async function createReply(req, res) {
  const { nid, content } = req.body;
  const result = await newsRepository.createReply(content, nid);
  if (result == "success") res.status(201).send("reply post 성공");
}

export async function getDetail(req, res) {
  let id = req.params.nid;
  let row = await newsRepository.GetDetail(id);
  res.render("detail.ejs", {
    newsList: row[0],
  });
}

export async function getReply(req, res) {
  let id = req.params.nid;
  let row = await newsRepository.getReply(id);
  res.render("reply.ejs", {
    replyList: row,
  });
}
import { db } from "../db/database.js";

export async function getList() {
  return db
    .execute("select nid,url,title,content,left(rdate,10) from news")
    .then((result) => result[0]);
}

export async function AddNews(url, title, content) {
  return db
    .execute(
      "insert into news(url,title,content,rdate) values(?,?,?,curdate())",
      [url, title, content]
    )
    .then((result) => "success");
}

export async function createReply(content, nid) {
  return db
    .execute(
      "insert into news_reply(content,NID,redate) values(?,?,sysdate())",
      [content, nid]
    )
    .then((result) => "success");
}

export async function GetDetail(id) {
  return db
    .execute("select * from news where nid = ?", [id])
    .then((result) => result[0]);
}

export async function getReply(id) {
  return db
    .execute("select content from news_reply where nid = ?", [id])
    .then((result) => result[0]);
}