koa se conecta a la base de datos mysql y realiza adiciones, eliminaciones y modificaciones simples

Conectarse a la base de datos

Novato de primaria, configure temporalmente la base de datos en el enrutamiento para la conveniencia del diagrama, el grupo de conexiones no se usa y el archivo de enrutamiento

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
	}
});

Reflejos

  1. Empalme de sentencias de operación SQL
  2. Ejecutar instrucción de operación sql
  3. resultado del proceso

Agregar, eliminar, modificar y verificar la declaración sql
Agregar: INSERT INTO address (createdTime, nombre, dirección, teléfono, perteneceId) VALUES (?,?,?,?,?)
Var queryParams = [createdTime, ctx.request.query.name , ctx.request .query.address, ctx.request.query.phone, ctx.request.query.userId]
dirección es el nombre de la tabla de consulta queryParams ¿los nuevos datos insertados corresponden a los anteriores? También puede reemplazar directamente el signo de interrogación con el valor correspondiente.
Eliminar: "ELIMINAR DE la dirección DONDE" + "id = '11111" "id =' 11111 'es la condición que cumple con la eliminación. La
dirección es el nombre de la tabla de consulta .DONDE está el que satisface la eliminación.
Cambio de condición : "ACTUALIZAR dirección SET nombre = '" + ctx.request.query.name + "', teléfono = '" + ctx.request.query.phone + "', dirección = '"+ ctx.request.query.address +"' donde id = '"+ ctx.request.query.id +"' "
address es el nombre de la tabla de consulta. Entre SET y donde están los datos a ser insertados. Después de donde está la identificación de los datos que se insertarán.
Verificar: SELECCIONAR * DESDE la dirección donde perteneceId = '"+ ctx.request.query.userId +"' límite “+ (ctx.request.query.pageNo-1) * ctx.request.query.pageSize +", "+ ctx.request .query.pageSize
pageNo es el número de la página de consulta pageSize es el número de la consulta customsId = "" es la condición de la consulta dirección es el nombre de la tabla de consulta

El método de ejecución de la declaración sql puede ser un paquete unificado para reducir la cantidad de código

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

Supongo que te gusta

Origin blog.csdn.net/qq_40969782/article/details/113998964
Recomendado
Clasificación