express数据库连接
文章写得不是很好,只是为了后期可能忘了,而做得一个笔记。之前我们用脚手架搭建得express项目app.js里面
var blogRouter = require('./routes/blog');
//接口路由
app.use('/blog', blogRouter);
//注册
运行起来
![初学express(三)](https://img.it610.com/image/info8/fce21958c7b140e9a558186b35672d97.jpg)
文章图片
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
推荐阅读
- 携程实习篇|Node.js之process进程
- node中package.json和package-lock.json文件的作用
- sequlize统一格式化时间
- egg 如何接收xml数据
- Node.js在WebStorm中调试
- node npm 设置全局仓库路径
- node require 导入模块解析 加载规则和加载机制
- node|node.js学习笔记-模块module
- window node配置安装的全局模块所在的路径cache的路径
- node|node.js express性能优化