koa mysql模块_koa 项目中引入 mysql
由于mysql模块的操作都是异步操作,每次操作的结果都是在回调函数中执行,现在有了async/await,就可以用同步的写法去操作数据库
Promise封装mysql模块
Promise封装 ./async-db.js
const mysql = require('mysql')
const pool = mysql.createPool({
host : '127.0.0.1',
user : 'root',
password : '123456',
database : 'my_database'
})
//将数据库的异步操作,封装在一个Promise中
let query = function( sql, values ) {
return new Promise(( resolve, reject ) => {
pool.getConnection(function(err, connection) {
if (err) {
reject( err )
} else {
connection.query(sql, values, ( err, rows) => {
if ( err ) {
reject( err )
} else {
resolve( rows )
}
connection.release()
})
}
})
})
}
module.exports = { query }
async/await使用Promise封装的mysql,开发自己的中间件./getdata.js
const { query } = require('./async-db');
//引用封装的mysql模块,来开发获取数据的中间件:
function getData(){
return async (ctx, next) => {
let sql = 'SELECT * FROM my_table';
// await等待query查询数据库,Promise异步操作完成后,通过resolve()返回查询到的数据列表
let dataList = await query( sql );
if(dataList[0]){ //数据不为空
//返回响应状态吗和响应信息
ctx.status = 200;
ctx.body = {code: 1, msg: 'query database success'}
}else{
ctx.status = 200;
ctx.body = {code: 0, msg: 'query database error'}
}
}
}
module.exports = { getData, }
Koa应用中使用中间件
const Koa = require('koa');
const router = require('koa-router')();
const bodyParser = require('koa-bodyparser');
const {getData} = require('./getdata');
const app = new Koa();
app.use(bodyParser()); //启用koa-bodyparser,需要它来获取post数据
router.get('/login', getData());
app.use(router.routs);
app.use(router.allowedMethods());
app.listen(2000);
.
koa mysql模块_koa 项目中引入 mysql相关推荐
- Java项目中引入MySQL依赖
问题描述:原项目是PG数据库,现在需要改成mysql数据库. 1.添加相关依赖 <!-- 增加相关依赖包 --><!-- Postgresql驱动包 --><!-- &l ...
- MySQL数据库(安装配置 语句语法使用 项目中操作MySQL)
文章目录: 一:安装配置 1.安装MySQL 2.卸载MySQL 3.汉化MySQL 4.启动和停止MySQL 5.修改MySQL密码 6.连接MySQL 二:语句语法使用 1.语句使用:增删改查 增 ...
- 数据库与身份认证(数据库的基本概念,安装并配置 MySQL,MySQL 的基本使用,在项目中操作 MySQL,前后端的身份认证)
theme: channing-cyan 数据库与身份认证 1. 数据库的基本概念 1.1 什么是数据库 数据库(database)是用来组织.存储和管理数据的仓库. 当今世界是一个充满着数据的互联网 ...
- mysql连接规定时区以及编码_springboot项目中使用mysql连接遇到时区timezone问题,和编码encoding问题解决...
springboot项目中使用mysql连接遇到时区timezone问题,和编码encoding问题解决 问题原因 1.application.properties的设置 1.1spring.data ...
- mysql ef_在EF中使用MySQL的方法及常见问题
有时需要在网上租用空间或数据库,Mysql成本低一些,所以想将sql server转成mysql-- 注意:在安装Mysql时要选择文字集为utf8,否则将不能使用中文(当前也可以在创建数据库时使用u ...
- django使用mysql原始语句,Django中使用mysql数据库并使用原生sql语句操作
Django自身默认使用sqlite3这个轻量级的数据库,但是当我们开发网站时,sqlite3就没有mysql好,sqlite3适合一些手机上开发使用的数据库. 准备的软件 mysql数据库,版本5. ...
- django mysql sql语句_Django中使用mysql数据库并使用原生sql语句操作
Django自身默认使用sqlite3这个轻量级的数据库,但是当我们开发网站时,sqlite3就没有mysql好,sqlite3适合一些手机上开发使用的数据库. 准备的软件 mysql数据库,版本5. ...
- ReactNative 在丁香医生项目中引入的踩坑日记
ReactNative 在丁香医生项目中引入的踩坑日记 this没绑定到函数导致空指针 参考 React-Native 踩坑第二弹-undefined is not a function(evalua ...
- React项目中引入图片
React项目中引入图片 一.场景描述 二.import 三.require 一.场景描述 当我们在react项目中使用img标签时,活着style中使用背景图片时,直接使用相对路径会无法引入图片. ...
最新文章
- NoSQL实现(3)——Cassandra
- Vue + SpringBoot跨域
- 四大组件---Activity
- 技术人不会学习,35 岁必然要焦虑!
- Golang 变量申明方式
- JavaScript实现模糊推荐的input框(类似百度搜索框)
- 在linux系统中查看mysql版本_Linux系统下查看mysql版本的四种方法_MySQL
- 什么是 Rax,以及 Rax 的特点
- 像韩寒一样活着 南方人物周刊(转)
- 六大行业动向,给2021年新能源汽车行业画下句点
- 济南公积金 销户 提取
- 使用腾讯云服务器搭建离线(中转)网盘
- 复变函数不挂科——3小时学完复变函数与积分变换(猴博士复变函数学习笔记2)
- 《高效能人士的7个习惯》-知彼解己
- 上“天”入“地”,都少不了亚马逊云科技这个云引擎
- Be accepted for inclusion in the IEEE INFOCOM 2018 technical program
- 解决《空中英语教室》Super MP3光盘繁体字乱码的方法
- 如何利用软文让你的产品广告上百度首页
- Selenium系列教程 - 文件上传
- CE实战:植物大战僵尸修改阳光并制作辅助(小试牛刀)
热门文章
- AbstractFactory抽象工厂模式
- 我是LinkedIn的SRE,我把LinkedIn搞挂了
- HTML iframe 和 frameset 的区别
- Linux命令:模拟电信联通双网络智能解析域名
- SCCM2012R2之五创建系统集合
- ghost一键还原如何使用
- RAC 安装patch 后启动实例 报错 ORA-00439 feature not enabled- Real Application Clusters 解决方法...
- 站长之家html视频播放,HTML5视频发展状况
- c语言dll注入,教大家写一个远程线程的DLL注入,其实还是蛮简单的……………………...
- 华为存储iscsi配置_iscsi 华为存储配置 上课内容