安装 mysql 模块:
npm install --save mysql
数据库工具 dbutil.js
const mysql = require("mysql")
const pool = mysql.createPool({
host : '101.12.28.231',
user : 'root',
password : '123456',
database : 'test'
})
let query = function( sql, values ) {
return new Promise(( resolve, reject ) => {
pool.getConnection(function(err, connection) {
if (err) {
resolve( err )
} else {
connection.query(sql, values, ( err, rows) => {
if ( err ) {
reject( err )
} else {
resolve( rows )
}
connection.release()
})
}
})
})
}
let createTable = function( sql ) {
return query( sql, [] )
}
let findDataById = function( table, id ) {
let _sql = "SELECT * FROM ?? WHERE id = ? "
return query( _sql, [ table, id ] )
}
let findDataByPage = function( table, keys, start, end ) {
let _sql = "SELECT ?? FROM ?? LIMIT ? , ?"
return query( _sql, [keys, table, start, end ] )
}
let insertData = function( table, values ) {
let _sql = "INSERT INTO ?? SET ?"
return query( _sql, [ table, values ] )
}
let updateData = function( table, values, id ) {
let _sql = "UPDATE ?? SET ? WHERE id = ?"
return query( _sql, [ table, values, id ] )
}
let deleteDataById = function( table, id ) {
let _sql = "DELETE FROM ?? WHERE id = ?"
return query( _sql, [ table, id ] )
}
let select = function( table, keys ) {
let _sql = "SELECT ?? FROM ?? "
return query( _sql, [ keys, table ] )
}
let count = function( table ) {
let _sql = "SELECT COUNT(*) AS total_count FROM ?? "
return query( _sql, [ table ] )
}
module.exports = {
query,
createTable,
findDataById,
findDataByPage,
deleteDataById,
insertData,
updateData,
select,
count,
}
应用:
const { query,findDataById } = require('./dbutil')
...
router.get('/users', async (ctx, next) => {
let dataList = await query( "SELECT * FROM user" )
ctx.body = dataList;
})
router.get('/user', async (ctx, next) => {
let id = ctx.query.id;
console.log('id:',id);
let user = await findDataById('user', id);
ctx.body = user;
})
...
网友评论