初学express(三)

express数据库连接

文章写得不是很好,只是为了后期可能忘了,而做得一个笔记。
之前我们用脚手架搭建得express项目app.js里面
var blogRouter = require('./routes/blog'); //接口路由 app.use('/blog', blogRouter); //注册

运行起来
初学express(三)
文章图片

routers里面blog.js文件
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 = https://www.it610.com/article/{}) =>{ 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 = https://www.it610.com/article/{}) =>{ 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 }) }constdelBlog = (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 }

【初学express(三)】demo文件下载地址
https://github.com/xdl-xq/express

    推荐阅读