扬中如何优化网站,sae wordpress 安装主题,北京建立公司网站,wordpress 商品展示目录 前言
新建表
获取文章分类列表接口
初始化路由模块
将路由对象导出并使用
初始化路由对象处理函数
修改路由代码
导入数据库
定义sql语句
调用db.query()
完整的获取文章分类列表处理函数
新增文章分类接口
定义路由和处理函数
验证表单数据
查询分类名称与…目录 前言
新建表
获取文章分类列表接口
初始化路由模块
将路由对象导出并使用
初始化路由对象处理函数
修改路由代码
导入数据库
定义sql语句
调用db.query()
完整的获取文章分类列表处理函数
新增文章分类接口
定义路由和处理函数
验证表单数据
查询分类名称与别名是否被占用
实现新增文章分类的功能
新增文章分类完整处理函数
根据id删除文章分类接口
定义路由和处理函数
验证表单数据
实现删除文章分类的功能
根据 Id 更新文章分类数据接口
定义路由和处理函数
验证表单数据
查询分类名称与别名是否被占用
实现更新文章分类的功能 前言
本文包含获取文章分类列表接口新增文章分类接口根据id删除文章分类接口根据id获取文章分类数据接口根据id更新文章分类数据接口
新建表 获取文章分类列表接口
初始化路由模块
// 创建路由对象
const express require(express)
const router express.Router()router.get(/cates,(req,res){res.send(获取分类成功)
})// 向外导出路由对象
module.exportsrouter
将路由对象导出并使用
在服务器中
// 导入并使用获取文章列表信息
const artcateRouter require(./router/artcate)
app.use(/my/article,artcateRouter)
使用postman模拟发送请求 初始化路由对象处理函数
// 向外导出获取文章列表处理函数
exports.getArticleCates(req,res){res.send(获取成功)
}
修改路由代码
// 获取文章分类的列表数据
router.get(/cates,artcate_handler.getArticleCates)
postman验证 导入数据库
// 导入数据库操作模块
const db require(../db/index)
定义sql语句
const sql select * from ev_article_cate where is_delete0 order by id asc
调用db.query()
db.query(sql,(err,results){// 验证sql语句是否执行if(err) return res.send({status:1,message:err.message})res.send({status:0,message:获取文章列表成功,data:results})})
完整的获取文章分类列表处理函数
// 向外导出获取文章列表处理函数
exports.getArticleCates(req,res){const sql select * from ev_article_cate where is_delete0 order by id ascdb.query(sql,(err,results){// 验证sql语句是否执行if(err) return res.send({status:1,message:err.message})res.send({status:0,message:获取文章列表成功,data:results})})
}
使用postman模拟发起请求
数据库中的信息 返回的数据 新增文章分类接口
定义路由和处理函数
// 新增文章分类的路由
router.post(/addcates, artcate_handler.addArticleCates)
处理函数
// 新增文章分类的处理函数
exports.addArticleCates (req, res) {res.send(新增成功)
}
postman验证接口 验证表单数据
创建文章分类数据验证模块并定义验证规则
// 导入定义验证规则的模块
const joi require(hapi/joi)// 定义 分类名称 和 分类别名 的校验规则
const name joi.string().required()
const alias joi.string().alphanum().required()// 校验规则对象 - 添加分类
exports.add_cate_schema {body: {name,alias,},
}
对数据进行验证
// 导入验证数据的中间件
const expressJoi require(escook/express-joi)
// 导入文章分类的验证模块
const { add_cate_schema } require(../schema/artcate)// 新增文章分类的路由
router.post(/addcates, expressJoi(add_cate_schema), artcate_handler.addArticleCates)
查询分类名称与别名是否被占用
定义sql语句 const sql select * from ev_article_cate where name? or alias?
调用db.query()执行查重操作
db.query(sql,[req.body.name,req.body.alias],(err,results){// sql语句是否成功执行if(err) return res.send({status:1,message:err.message})// 名字和类名都被占用if(results.length 2) return res.send({status:1,message:类名与别名被占用})// 名字和类名都被占用if(results.length 1 results[0].name req.body.name results[0].alias req.body.alias) return res.send({status:1,message:类名和别名被占用})// 名字被占用if(results.length 1 results[0].name req.body.name) return res.send({status:1,message:类名被占用})// 类名被占用if(results.length 1 results[0].alias req.body.alias) return res.send({status:1,message:别名被占用})res.send(新增成功)})
使用postman验证
数据库中 当新增类名和别名与数据库中相同时 类名相同时 别名相同时 没有重复时 实现新增文章分类的功能
定义sql语句
const sql insert ev_article_cate set ?
调用db.query()新增文章分类 db.query(sql,req.body,(err,results){// 判断sql语句是否执行成功if(err) return res.send({status:1,message:err.message})if (results.affectedRows ! 1) return res.send({status:1,message:新增文章分类失败})res.send({status:0,message:新增成功})})
新增文章分类完整处理函数
// 向外导出新增文章列表处理函数
exports.addArticleCates(req,res){const sql select * from ev_article_cate where name? or alias?db.query(sql,[req.body.name,req.body.alias],(err,results){// sql语句是否成功执行if(err) return res.send({status:1,message:err.message})// 名字和类名都被占用if(results.length 2) return res.send({status:1,message:类名与别名被占用})// 名字和类名都被占用if(results.length 1 results[0].name req.body.name results[0].alias req.body.alias) return res.send({status:1,message:类名和别名被占用})// 名字被占用if(results.length 1 results[0].name req.body.name) return res.send({status:1,message:类名被占用})// 类名被占用if(results.length 1 results[0].alias req.body.alias) return res.send({status:1,message:别名被占用})const sql insert ev_article_cate set ?db.query(sql,req.body,(err,results){// 判断sql语句是否执行成功if(err) return res.send({status:1,message:err.message})if (results.affectedRows ! 1) return res.send({status:1,message:新增文章分类失败})res.send({status:0,message:新增成功})})})}
使用postman验证是否新增成功 在mysql数据库中 成功插入
根据id删除文章分类接口
定义路由和处理函数
router.get(/deletecate/:id,(req,res){res.send(删除成功)
})
处理函数
// 向外导出根据id删除文章分类处理函数
exports.deleteArticleCates(req,res){res.send(删除成功)
}
修改路由
// 根据id删除文章分类
router.get(/deletecate/:id,artcate_handler.deleteArticleCates)
使用postman验证
注意需要在参数中携带id参数 验证表单数据
在规则定义模块中定义id的校验规则
// 定义id的校验规则
const id joi.number().integer().min(1).required()
向外共享校验对象
注意这里是get请求所以是params
exports.delete_cate_schema {params: {id,},}
导入需要验证的对象
// 导入删除分类的验证规则对象
const { delete_cate_schema } require(../schema/artcate)路由中验证
// 根据id删除文章分类
router.get(/deletecate/:id,expressJoi(delete_cate_schema),artcate_handler.deleteArticleCates)
实现删除文章分类的功能
定义sql语句
直接删除数据过于危险这里修改数据的状态码来表示删除
const sql update ev_article_cate set is_delete1 where id?
调用db.query() db.query(sql,req.params.id,(err,results){// sql语句执行不成功if(err) return res.send({status:1,message:err.message})if(results.affectedRows!1) return res.send({status:1,message:删除文章分类失败})res.send({status:0,message:删除文章分类成功})})
完整的根据id删除文章分类处理函数
// 向外导出根据id删除文章分类处理函数
exports.deleteArticleCates(req,res){const sql update ev_article_cate set is_delete1 where id?db.query(sql,req.params.id,(err,results){// sql语句执行不成功if(err) return res.send({status:1,message:err.message})if(results.affectedRows!1) return res.send({status:1,message:删除文章分类失败})res.send({status:0,message:删除文章分类成功})})
}
使用postman验证
原数据库中 发送删除请求后 在数据库中 根据 Id 更新文章分类数据接口
定义路由和处理函数
处理函数 // 向外导出根据id更新文章分类处理函数
exports.updateArticleCates(req,res){res.send(更新成功)
}
定义路由
// 根据id更新文章分类数据
router.post(/updateCate,artcate_handler.updateArticleCates)
postman验证 验证表单数据
在定义规则模块中定义规则并共享验证对象 // 校验规则对象 - 更新分类
exports.update_cate_schema {body: {Id: id,name,alias,},}
导入需要验证的对象并在路由中验证
// 导入更新文章分类的验证规则对象
const { update_cate_schema } require(../schema/artcate)// 根据id更新文章分类数据
router.post(/updateCate,expressJoi(update_cate_schema),artcate_handler.updateArticleCates)
查询分类名称与别名是否被占用
定义sql语句
在数据库中查找是否有相同的类名和别名,所以应该在除去用户传过来的id以外的数据中查找
const sql select * from ev_article_cate where id? and (name? or alias?)
调用db.query()
db.query(sql,[req.body.id,req.body.name,req.body.alias],(err,results){if(err) return res.send({status:1,message:err.message})if(results.length 2) return res.send({status:1,message:类名和别名被占用请重新更换})if(results.length 1 results[0].name req.body.name results[0].alias req.body.alias) return res.send({status:1,message:类名和别名被占用请重新更换})if(results.length 1 results[0].name req.body.name) return res.send({status:1,message:类名被占用请更换类名})if(results.length 1 results[0].alias req.body.alias) return res.send({status:1,message:别名被占用请更换别名})res.send(更新成功)})
实现更新文章分类的功能
定义sql语句
const sql update ev_article_cate set ? where Id?
调用db.query()
db.query(sql,[req.body,req.body.Id],(err,results){if(err) return res.send({status:1,message:err.message})if(results.affectedRows!1) return res.send({satus:1,message:更新失败})res.send({status:0,message:更新成功})})
完整根据id更新文章分类数据的处理函数
// 向外导出根据id更新文章分类处理函数
exports.updateArticleCates(req,res){// 在数据库中查找是否有相同的类名和别名,所以应该在除去用户传过来的id以外的数据中查找const sql select * from ev_article_cate where id? and (name? or alias?)db.query(sql,[req.body.Id,req.body.name,req.body.alias],(err,results){if(err) return res.send({status:1,message:err.message})if(results.length 2) return res.send({status:1,message:类名和别名被占用请重新更换})if(results.length 1 results[0].name req.body.name results[0].alias req.body.alias) return res.send({status:1,message:类名和别名被占用请重新更换})if(results.length 1 results[0].name req.body.name) return res.send({status:1,message:类名被占用请更换类名})if(results.length 1 results[0].alias req.body.alias) return res.send({status:1,message:别名被占用请更换别名})const sql update ev_article_cate set ? where Id?db.query(sql,[req.body,req.body.Id],(err,results){if(err) return res.send({status:1,message:err.message})if(results.affectedRows!1) return res.send({satus:1,message:更新失败})res.send({status:0,message:更新成功})})})}
使用postman
数据库中的数据 当类名重复时 别名重复时 没有重复时 数据库中数据被更新