const Koa = require('koa'); const app = new Koa(); const mysql = require('mysql'); // mysql配置相关 const config = { host: '127.0.0.1', user: 'root', password: '123&#39

const Koa = require('koa');
const app = new Koa();
const mysql = require('mysql');
// mysql配置相关
const config = {
  host: '127.0.0.1',
  user: 'root',
  password: '123',
  database: 'my_vue_blog',
  connectionLimit: 10
};
// 创建连接池
const pool = mysql.createPool({
  host: config.host,
  user: config.user,
  password: config.password,
  database: config.database,
  connectionLimit: config.connectionLimit
});
// 执行query语句
let query = (sql, values) => {
  return new Promise((resolve, reject) => {
    pool.getConnection((err, connection) => {
      if (err) {
        reject(err);
      } else {
        connection.query(sql, values, (err, rows) => {
          connection.release();
          if (err) {
            return reject(err);
          } else {
            return resolve(rows);
          }
        });
      }
    });
  });
};
// 装载中间件,挂在上下文的execSql上
app.use(async (ctx, next) => {
  ctx.execSql = query;
  await next();
});
// 执行sql语句
app.use(async (ctx) => {
  let result = await ctx.execSql(`show databases`);
  ctx.body = {
    result
  };
});
app.listen(1111);

说点其他

  • node 连接 mysql 或者 mongoDB 等数据库不太难,所以这章就简单一笔带过。
  • 一般来说为了加速开发,mysql 的使用都在可视化的操作工具中,我一般用 navicat,这是 navicat for mysql 的破解补丁,链接: https://pan.baidu.com/s/135XW17a-5nmLZU9tpiqFRQ 提取码: h9ij

暂无评论