const db = require("./db"); // // 文章模块 const router = require("express").Router(); // 用户网站模块 // 1.查询文章列表(分页|搜索) router.get("/web/list", async function (req, res) { const page = parseInt(req.query["page"] || 1); // 获取页码 const size = parseInt(req.query["size"] || 5); // 每天条数 // 默认每页5条 const start = (page - 1) * size; const search = "%" + (req.query["search"] || "") + "%"; // 搜索关键字 try { const listResult = await db.query( `select id,title,category,publish_time,cover,description,view_count,comment_count from article where (title like ? or content like ? ) and status = 1 limit ?,?`, [search, search, start, size] ); // 执行查询语句并等待结果出来后赋值给变量 const totalCount = await db.query( `select count(*) as total from article where (title like ? or content like ?) and status = 1`, [search, search] ); // 执行获取总条数 res.send({ total: totalCount[0]["total"], list: listResult, size: size, }); } catch (e) { console.log(e); res.send({ count: 0, list: [] }); } }); // 2.查询单个文章详情 router.all("/web/detail", async (req, res) => { let id = req.query["id"]; if (!id || id < 1) { res.send([]); } else { const article = await db.query( "select * from article where id =? and status = 1", [id] ); res.send(article); } }); // 3.更新阅读数量 router.all("/web/update", async (req, res) => { let id = req.query["id"]; if (!id || id < 1) { res.send({ status: false, message: "参数不对" }); } else { const article = await db.query( "update article set view_count=view_count + 1 where id =?", [id] ); res.send({ status: true }); } }); // 管理后台模块 router.get("/admin/list", async function (req, res) { const page = parseInt(req.query["page"] || 1); // 获取页码 const size = parseInt(req.query["size"] || 5); // 每天条数 // 默认每页5条 const start = (page - 1) * size; const search = "%" + (req.query["search"] || "") + "%"; // 搜索关键字 try { const listResult = await db.query( `select * from article where (title like ? or content like ? ) and status > 0 limit ?,?`, [search, search, start, size] ); // 执行查询语句并等待结果出来后赋值给变量 const totalCount = await db.query( `select count(*) as total from article where (title like ? or content like ?) and status > 0`, [search, search] ); // 执行获取总条数 res.send({ total: totalCount[0]["total"], list: listResult, size: size, }); } catch (e) { console.log(e); res.send({ count: 0, list: [] }); } }); router.post("/admin/save", async function (req, res) { // 从请求参数中获取要更新的数据 const { id, title, category, content, cover, description, view_count, comment_count, } = req.body; const article = await db.query( `update article set title=?, category=?, content=?, cover=?, description=?, view_count=?,comment_count=? where id =?`, [ title, category, content, cover, description, view_count, comment_count, id ] ); res.send({ status: true }); }); // 更新状态 router.all("/admin/update", async function (req, res) { // 从请求参数中获取要更新的数据 const {id,status} = req.query; await db.query( `update article set status=? where id =?`, [status,id] ); res.send({ status: true }); }); module.exports = router;