koa+myql使用一

config/default.js

module.exports = {
  port: 3000,

  database: {
    HOST: '127.0.0.1',  //数据库地址
    PORT: '3306',
    USER: 'root', //数据库用户
    PASSWORD: 'root', //数据库密码
    DATABASE: 'test' //选中数据库
  }
}

mysql/async-db.js

const mysql = require('mysql');

const config = require('../config/default.js')
const database = config.database


const pool = mysql.createPool({
  host: database.HOST,
  user: database.USER,
  password: database.PASSWORD,
  database: database.DATABASE
})

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()
          })
        }
      })
    })
    .catch((error) => {
        console.log(error,'Promise error');
    });
}

module.exports = { query }

routers/view.js

//浏览页路由
const router = require('koa-router')();
const { query } = require('../mysql/async-db')

router
  .get('/', async ( ctx, next ) => {
    
    let data;

    async function selectAllData( ) {
      let sql = 'SELECT * FROM user'
      let dataList = await query( sql )
      return dataList
    }
    
    try {

      data = {
        code: 200,
        message: 'success',
        data: await selectAllData()
      }
    } catch (err) {
      data = {
        code: 500,
        message: 'error'
      }
      
    }

    ctx.body = data;

  })
  .get('/:name', async (ctx, next) => {
      var name = ctx.params.name;
      ctx.response.body = `

Hello, ${name}!

`; }); module.exports = router;

你可能感兴趣的:(koa+myql使用一)