我们想让项目能够支持 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()
})