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]);
}