Node.js Express博客项目实战 之新闻分类管理

 

在新闻管理中分为新闻分类管理、新闻管理、评论管理

分析新闻分类管理:

新闻分类数据库的字段:

 

 对新闻分类有修改、删除、查看功能

在该后台的首页新闻管理部分写入跳转的路由:

<h2><span class="icon-user"></span>新闻管理</h2>
  <ul >
    <li><a href="/admin/type/" target="right"><span class="icon-caret-right"></span>新闻分类管理</a></li>
    <li><a href="/admin/news/" target="right"><span class="icon-caret-right"></span>新闻管理</a></li>
    <li><a href="/admin/comment/" target="right"><span class="icon-caret-right"></span>评论管理</a></li>
  </ul>   

 

在后台路由中进行注册新闻分类路由:

// 新闻分类管理
let typeRouter = require('./admin/newtype.js');
router.use('/type',typeRouter);

 

在视图views中新建文件交type,写入加载的页面:

newtype.js中分别写入加载的分类页面,添加功能,以及修改功能

// 导入express
const express = require("express");

// 实例化router
const router = express.Router();

// 导入数据库相关内容
const mysql = require("../../config/db.js");

// 分类查看页面
router.get("/",function(req,res,next){
        // 从数据库中查询相关数据

    mysql.query("select * from newstype order by sort desc",function(err,data){
        if (err) {
            return "";
        }else{
            // 加载页面
            res.render("admin/type/index.html",{data:data});
        }
    });
    
    
    
});

// 分类的添加页面
router.get("/add",function(req,res,next){
    // 加载添加页面
    res.render("admin/type/add.html");
});

// 分类的添加操作
router.post("/add",function(req,res,next){
    // 接收参数
    let {name,keywords,description,sort} = req.body;

    // 将数据插入到数据库中
    mysql.query("insert into newstype(name,keywords,description,sort) value(?,?,?,?)",[name,keywords,description,sort],function(err,data){
        // 判断是否错误
        if (err) {
            return "";
        }else{
            // 判断是否执行成功
            if (data.affectedRows==1) {
                res.send("<script>alert('添加成功');location.href='/admin/type'</script>");
            }else{
                res.send("<script>alert('添加失败');history.go(-1)</script>");
            }
        }

    })

});

// 分类的修改页面

router.get('/edit',function(req,res,next){
    // 接受数据的ID

    let id = req.query.id;

    // 查询对应数据
    mysql.query("select * from newstype where id = "+id,function(err,data){
        // 判断
        if (err) {
            return "";
        }else{
            console.log(data);
            
            // 加载修改页面
            res.render("admin/type/edit.html",{data:data[0]});
        }
    })    
    
//    res.send("管理员修改");
});


// 管理员数据修改功能
router.post("/edit",function(req,res,next){
    // 接受表单提交的数据
    console.log(req.body);
    

});





module.exports = router;

最终新闻分类的显示效果:

 

posted @ 2019-08-28 12:45  perfect*  阅读(472)  评论(0编辑  收藏  举报
$(function() { $('#cnblogs_post_body img').each(function() { let imgSrc = $(this).attr('src'); let year = parseInt(imgSrc.substr(imgSrc.indexOf('g')+1,4)); if(year >= 2022){ imgSrc += `?watermark/2/text/amlndWl5YW4=/font/5a6L5L2T/fontsize/15/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast`; $(this).attr('src', imgSrc) } }) })