node+express项目案例(三)

node+express项目案例(一):https://blog.csdn.net/Chris__wang/article/details/90738551

node+express项目案例(二):https://mp.csdn.net/postedit/90738794

node+express项目案例(三):https://mp.csdn.net/postedit/90744140
项目地址:https://github.com/wangyeky3419/node-app

数据库用的是mysql数据库,表内数据会放在代码中

本项目虽然页面不多,但是包含了基本的数据库建立,查询,修改,删除,插入,路由管理以及artTemplate模板应用,页面登录,cookie登录用户信息存储,md5密码加密等

下面是用户部分

template/user/user.art




    
    
    
    
    
    用户信息
    


    
{{include './userAdd.art'}} {{include './userEdit.art'}}

这里面使用了bootstrapTable插件进行了表格渲染

node+express项目案例(三)_第1张图片

并且在此页面引入的新增,修改部分组件,至于表单验证样式问题前面已经提过,是由于bootstrap4里面没有该样式,具体解决办法请看   项目案例(一)部分 https://mp.csdn.net/postedit/90738551

新增、修改、删除、刷新等,利用的是jquery 的ajax发送请求

后台代码如下routes/user.js

const express = require('express');
const mysql = require('mysql');
var db = mysql.createPool({
    host:'localhost',
    user:'root',
    password:'9527',
    database:'learn'
});
module.exports = function(){
    var router = express.Router();
    router.get('/get_users',(req,res)=>{
        db.query(`SELECT * FROM user_table`,(err,data)=>{
            if(err){
                res.status(500).send('database error').end()
            }else{
                res.send(data).end()
            }
        })
    });
    router.get('/',(req,res)=>{
        res.render('index.art',{
            path:'./user/user.art'
        })
    })
    //新增
    router.post('/userAdd',(req,res)=>{
        var b = req.body;
        db.query(`INSERT INTO user_table (name,code,industry,job,city) VALUES ('${b.name}','${b.code}','${b.industry}','${b.job}','${b.city}')`,(err,data)=>{
            if(err){
                res.status(500).send('数据库错误').end()
            }else{
                res.status(200).send({msg:'success'}).end()
            }
        })
    })
    //修改
    router.post('/userEdit',(req,res)=>{
        var b = req.body;
        db.query(`UPDATE user_table SET name='${b.name}',code='${b.code}',industry='${b.industry}',job='${b.job}',city='${b.city}' WHERE id='${b.id}'`,(err,data)=>{
            if(err){
                res.status(500).send('数据库错误').end();
            }else{
                res.status(200).send({msg:'success'}).end()
            }
        })
    })
    //删除
    router.post('/userDel',(req,res)=>{
        db.query(`DELETE FROM user_table WHERE id='${req.body.id}'`,(err,data)=>{
            if(err){
                res.status(500).send('数据库错误').end();
            }else{
                res.status(200).send({msg:'success'}).end()
            }
        })
    })
    return router;
}

新闻列表new部分使用的是分页加载,每次加载5条新闻   template/news/news.art







新闻页



{{each $data['data'] as value index}}
{{value.title}} {{value.time}}
{{value.content}}
{{/each}}

加载更多

点击加载更多,调用接口查询更多数据,利用ajax发起数据请求,当返回数据为空的时候,证明没有更多数据

routes/news.js

const express = require('express');
const mysql = require('mysql');
var db = mysql.createPool({
    host:'localhost',
    user:'root',
    password:'9527',
    database:'learn'
});
module.exports = function(){
    var router = express.Router();
    router.get('/',(req,res)=>{
        db.query(`SELECT * FROM news_table LIMIT 0,5`,(err,result)=>{
            if(err){
                res.status(500).send('database error').end()
            }else{
                console.log('data',result)
                res.render('index.art',{
                    path:'./news/news.art',
                    data:result
                })
            }
        })
       
    });
    router.post('/more',(req,res)=>{
        console.log(11111111111,req.body.number)
        db.query(`SELECT * FROM news_table LIMIT ${+req.body.number},5`,(err,result)=>{
            if(err){
                res.status(500).send('database error').end()
            }else{
                res.status(200).send({msg:'success',data:result})
            }
        })
       
    });
    return router;
}

由于代码里面写的很清楚,注释也很清晰,而且项目并不复杂,很容易理解,故而文章中没有太多介绍,将代码下载一看便懂

至此,node+express项目完毕 

后期如有时间,会更新文件上传下载部分以及注册功能的完善,谢谢

 

你可能感兴趣的:(node项目实例,express项目实例,artTemplate项目实例,express,route路由,个人总结)