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;
网友评论