koaはmysqlデータベースに接続し、簡単な追加、削除、および変更を実行します

データベースに接続します

初級新人、図の便宜のためにルーティングでデータベースを一時的に構成し、接続プールは使用されず、ルーティングファイル

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

ハイライト

  1. SQL操作ステートメントのスプライシング
  2. SQL操作ステートメントを実行します
  3. プロセス結果

SQLステートメントの追加、削除、変更、およびチェック
追加:INSERT INTOアドレス(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]
アドレスはクエリテーブル名queryParams挿入された新しいデータは上記に対応しますか?疑問符を対応する値に直接置き換えることもできます。
削除: "DELETE FROM address WHERE" + "id = '11111" "id =' 11111 'は、削除を満たす条件です。
アドレスは、クエリテーブルの名前です。
。WHEREは削除を満たすものです。条件の変更: "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はクエリテーブルの名前です。SETとwhereの間には、挿入するデータがあります。挿入するデータのIDはどこにありますか。
チェック:SELECT * FROMアドレスwherebelongsId = '"+ ctx.request.query.userId +"' limit "+(ctx.request.query.pageNo-1)* ctx.request.query.pageSize +"、 "+ ctx.request .query.pageSize
pageNoはクエリページ番号ですpageSizeはクエリの番号belongsId = ""はクエリ条件アドレスはクエリテーブル名です

SQLステートメントを実行する方法は、コードの量を減らすために統合パッケージにすることができます

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

おすすめ

転載: blog.csdn.net/qq_40969782/article/details/113998964