Koa 数据库

Mysql 封装

我们想让项目能够支持 mysql,通过我们之前学习过的 Mysql 章节,我们做一个封装。

// utils/mysql.js
const mysql = require('mysql')
let pools = {}
let query = (sql,callback, host = '127.0.0.1') => {
    if (!pools.hasOwnProperty(host)) {
        pools[host] = mysql.createPool({
            host: host,
            port: '3306',
            user: 'root',
            password: ''

        })
    }
    pools[host].getConnection((err, connection) => {
        connection.query(sql, (err, results) => {
            callback(err, results)
            connection.release()
        })
    })
}

module.exports = query

这样的一些 工具性 的东西,我们单独的分开出来,放在一个 utils 目录中,然后通过 ctx 关联起来。


访问数据库

/*
 通过一个中间件,把所有的工具关联起来
*/
app.use(async (ctx, next) => {
  ctx.util = {
    mysql: require('./utils/mysql')
  }
    await next()
})

// 操作数据库
app.use(async (ctx, next) => {
  ctx.util.mysql('select * from dbname.dbtable', function(err, results) {
    console.log(results)
  })
  await next()
})
Koa 教程 Koa 入门 Koa HTTP Koa 开发框架 Koa 路由 Koa 静态文件 Koa bodyparser Koa 视图 Koa 数据库 Koa 记录日志