文章写得不是很好,只是为了后期可能忘了,而做得一个笔记。
之前我们用脚手架搭建得express项目app.js里面
var blogRouter = require('./routes/blog'); //接口路由
app.use('/blog', blogRouter); //注册
var express = require('express')
var router = express.Router();
router.get('/list',function(req, res, next){
//假数据
res.json({
errno:0,
data:[1,2,3]
})
})
module.exports = router
这就是一个简单得接口,
通过连接数据库获得的数据
var express = require('express')
var router = express.Router();
const { SuccessModel, ErrorModel } = require('../model/resModel.js')
const { getList, getDetail, newBolg, updateBlog, delBlog } = require('../controller/blog.js')
//引入登录验证中间件
const loginCheck = require('../middleware/loginCheck')
router.get('/list',function(req, res, next){
let author = req.query.author || ''
const keywork = req.query.keywork || ''
if(req.query.isadmin){
if(req.session.username == null){
res.json(new ErrorModel('未登录'))
return
}
//强制查询自己的博客
// author = req.session.username
}
const result = getList(author, keywork)
return result.then( listData => {
res.json(new SuccessModel(listData))
})
})
其中 getList是数据库查询
controller目录下blog.js文件
const { exec } = require('../db/mysql.js')
const getList = (author, keyword) => {
let sql = `select * from blogs where 1=1 `
if(author){
sql += ` and author='${author}' `
}
if(keyword){
sql += ` and title like '%${keyword}%' `
}
sql+= ' order by createtime desc'
console.log(sql,',,,,')
//返回的是promise
return exec(sql)
}
const getDetail = (id) => {
const sql = `select * from blogs where id ='${id}'`
return exec(sql).then(rows =>{
return rows[0]
})
/* return {
id:2,
title:'标题B',
content:'内容B',
createTime:1546610524373,
author:'李四'
} */
}
const newBolg = (blogData = {}) =>{
const title = blogData.title
const author = blogData.author
const createtime = Date.now()
const content = blogData.content
const sql = `insert into blogs (title, content, author, createtime)
values ('${title}', '${content}','${author}', ${createtime}) `
return exec(sql).then(insertData =>{
// console.log(insertData)
return {
id:insertData.insertId
}
})
// console.log(blogData)
// return {
// id:3 //表示插入数据库里面的id
// }
}
const updateBlog = (id, blogData = {}) =>{
console.log('更新成功')
const title = blogData.title;
const content = blogData.content
const sql = `
update blogs set title = '${title}' , content = '${content}' where id = '${id}'
`
return exec(sql).then(updateData =>{
console.log('updateData is ' , updateData)
if(updateData.affectedRows >0 ){
return true
}
return false
})
}
const delBlog = (id, author) => {
const sql = `delete from blogs where id = '${id}' and author = '${author}'`
return exec(sql).then(delData =>{
if(delData.affectedRows >0){
return true
}
return false
})
}
module.exports = {
getList,
getDetail,
newBolg,
delBlog,
updateBlog
}
demo文件下载地址
https://github.com/xdl-xq/express