130 lines
4.0 KiB
JavaScript
130 lines
4.0 KiB
JavaScript
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;
|