初学express(三)

express数据库连接

文章写得不是很好,只是为了后期可能忘了,而做得一个笔记。

之前我们用脚手架搭建得express项目app.js里面

var blogRouter = require('./routes/blog'); //接口路由
app.use('/blog', blogRouter); 	//注册

运行起来
在这里插入图片描述
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 = {}) =>{
	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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值