koa connects to the mysql database and performs simple additions, deletions, and modifications

Connect to the database

Elementary rookie, temporarily configure the database in the routing for the convenience of the diagram, the connection pool is not used, the routing file

const mysql = require('mysql')  //引入数据库插件
const koaRouter = require('koa-router');
const router = koaRouter();

//连接数据库
const connection = mysql.createConnection({
    
    
	host: 'localhost',
	user: 'root',
	password: '123456',
	port: '3306',
	database: 'testnode'
})
//新增数据
router.post('/add', async (ctx, next) => {
    
    
	console.log(Boolean( ctx.request.query.name && ctx.request.query.address && ctx.request.query.phone))
	if(ctx.request.query.phone && ctx.request.query.address && ctx.request.query.name){
    
    
		
		var data = {
    
    }
		var createdTime=new Date()
		var querySql="INSERT INTO address (createdTime,name,address,phone,belongsId) VALUES(?,?,?,?,?)"
		var queryParams=[createdTime,ctx.request.query.name,ctx.request.query.address,ctx.request.query.phone,ctx.request.query.userId]
		console.log(queryParams)
		var searchSql = (querySql,queryParams) => {
    
    
			return new Promise((resolve, reject) => {
    
    
				console.log('准备查询')
				connection.query(querySql,queryParams, function(err, result) {
    
    
					if(err){
    
    
						reject(0)
						console.log(err+'err')
					}
					resolve(result)
				})
			})
		}
		var res= await searchSql(querySql,queryParams)
		if(res){
    
    
			data.code='0'
			data.msg="添加成功"
			ctx.body=data
		}else{
    
    
			data.code='1'
			data.msg="添加失败"
			ctx.body=data
		}
	}
});
//查询数据
router.get('/query', async (ctx, next) => {
    
    
	var data = {
    
    }
	console.log(ctx.request.query.pageNo - 1)
	var querySql="SELECT * FROM address where belongsId= '"+ctx.request.query.userId+"' limit "+ (ctx.request.query.pageNo-1)*ctx.request.query.pageSize+"," + ctx.request.query.pageSize
	var querySqlNo="SELECT * FROM address where belongsId= '"+ctx.request.query.userId+"'"
	var searchSql = (thesql) => {
    
    
		return new Promise((resolve, reject) => {
    
    
			console.log('准备查询')
			connection.query(thesql, function(err, result) {
    
    
				if(err){
    
    
					reject(0)
					console.log(err+'err')
				}
				resolve(result)
			})
		})
	}
	var res= await searchSql(querySqlNo)
	if(res){
    
    
		var datares= await searchSql(querySql)
		if(datares){
    
    
			var param={
    
    list:datares,total:res.length}
			data.code='0'
			data.msg="成功获取"
			data.data=param
			ctx.body=data
		}
		
	}
})
//更新数据
router.post('/update', async (ctx, next) => {
    
    
	var updateSql="UPDATE address SET name = '"+ctx.request.query.name+"', phone = '" + ctx.request.query.phone + "', address = '" + ctx.request.query.address +"' where id = '" +ctx.request.query.id + "'"
	var searchSql = (thesql) => {
    
    
		return new Promise((resolve, reject) => {
    
    
			connection.query(thesql, function(err, result) {
    
    
				if(err){
    
    
					reject(1)
					console.log(err+'err')
				}
				resolve(0)
			})
		})
	}
	var data={
    
    }
	var res= await searchSql(updateSql)
	
	if(res==0){
    
    
		data.msg="更新成功"
		data.code=0
		ctx.body=data
	}else{
    
    
		data.code=1
		data.msg="更新失败,请稍后再试!"
		ctx.body=data
	}
});
//删除数据
router.post('/remove', async (ctx, next) => {
    
    
	var deleteSql="DELETE FROM address WHERE "+"id='"+ctx.request.query.id + "'"
	var searchSql = (thesql) => {
    
    
		return new Promise((resolve, reject) => {
    
    
			connection.query(thesql, function(err, result) {
    
    
				if(err){
    
    
					reject(1)
					console.log(err+'err')
				}
				resolve(0)
			})
		})
	}
	var data={
    
    }
	var res= await searchSql(deleteSql)
	
	if(res==0){
    
    
		data.msg="删除成功"
		data.code=0
		ctx.body=data
	}else{
    
    
		data.code=1
		data.msg="删除失败,请稍后再试!"
		ctx.body=data
	}
});

Highlights

  1. Splicing SQL operation statements
  2. Execute sql operation statement
  3. process result

Add, delete, modify and check sql statement
Add: INSERT INTO address (createdTime,name,address,phone,belongsId) VALUES(?,?,?,?,?)
var queryParams=[createdTime,ctx.request.query.name,ctx.request .query.address,ctx.request.query.phone,ctx.request.query.userId]
address is the query table name queryParams is the new data inserted corresponds to the above? You can also directly replace the question mark with the corresponding value.
Delete: "DELETE FROM address WHERE "+"id='11111"" id='11111' is the condition that meets the deletion.
address is the name of the query table. WHERE is the one that satisfies the deletion. Condition
change: "UPDATE address SET name ='"+ctx.request.query.name+"', phone ='" + ctx.request.query.phone + "', address ='" + ctx.request.query.address +"' where id ='" +ctx.request.query.id + "'"
address is the name of the query table. Between SET and where is the data to be inserted. After where is the id of the data to be inserted.
Check: SELECT * FROM address where belongsId='"+ctx.request.query.userId+"' limit “+ (ctx.request.query.pageNo-1)*ctx.request.query.pageSize+"," + ctx.request .query.pageSize
pageNo is the query page number pageSize is the number of the query belongsId="" is the query condition address is the query table name

The method of executing SQL statements can be packaged in a unified manner to reduce the amount of code

var searchSql = (thesql) => {
    
    
		return new Promise((resolve, reject) => {
    
    
			connection.query(thesql, function(err, result) {
    
    
				if(err){
    
    
					reject(1) //返回状态
					console.log(err+'err')
				}
				resolve(0) //返回状态 //只有查询有具体返回内容
			})
		})
	}

Guess you like

Origin blog.csdn.net/qq_40969782/article/details/113998964