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插件进行了表格渲染
并且在此页面引入的新增,修改部分组件,至于表单验证样式问题前面已经提过,是由于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项目完毕
后期如有时间,会更新文件上传下载部分以及注册功能的完善,谢谢