koa中间件mysql写法_koa 项目中引入 mysql

因为mysql模块的操做都是异步操做,每次操做的结果都是在回调函数中执行,如今有了async/await,就能够用同步的写法去操做数据库javascript

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

.java

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是手把手带你搭建koa2 mysql项目的教程。 1. 安装Node.js和npm 首先需要安装Node.js和npm,可以在官网下载安装包进行安装。 2. 初始化项目 在命令行进入项目目录,运行以下命令初始化项目: ``` npm init ``` 根据提示填写项目信息,完成后会生成package.json文件。 3. 安装koa2和koa-router 运行以下命令安装koa2和koa-router: ``` npm install koa koa-router --save ``` 4. 安装mysql模块 运行以下命令安装mysql模块: ``` npm install mysql --save ``` 5. 创建数据库 在mysql创建一个名为test的数据库,并创建一个名为users的表,包含id、name、age三个字段。 6. 创建连接池 在项目创建一个db.js文件,用于创建mysql连接池: ```javascript const mysql = require('mysql'); const pool = mysql.createPool({ host: 'localhost', user: 'root', password: '123456', database: 'test' }); module.exports = pool; ``` 7. 创建路由 在项目创建一个router.js文件,用于创建koa-router路由: ```javascript const Router = require('koa-router'); const pool = require('./db'); const router = new Router(); router.get('/users', async (ctx) => { const conn = await pool.getConnection(); const [rows] = await conn.query('SELECT * FROM users'); conn.release(); ctx.body = rows; }); module.exports = router; ``` 8. 创建服务器 在项目创建一个app.js文件,用于创建koa2服务器并引入路由: ```javascript const Koa = require('koa'); const router = require('./router'); const app = new Koa(); app.use(router.routes()); app.listen(3000, () => { console.log('Server is running at http://localhost:3000'); }); ``` 9. 运行项目 在命令行进入项目目录,运行以下命令启动服务器: ``` node app.js ``` 在浏览器访问http://localhost:3000/users,可以看到数据库的用户数据。 至此,一个简单的koa2 mysql项目就搭建完成了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值