美文网首页
koa+myql使用一

koa+myql使用一

作者: 一沭丶 | 来源:发表于2017-09-07 21:41 被阅读749次

    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 = `<h1>Hello, ${name}!</h1>`;
      });
    
    module.exports = router;
    
    

    相关文章

      网友评论

          本文标题:koa+myql使用一

          本文链接:https://www.haomeiwen.com/subject/cgjwjxtx.html