61 lines
1.6 KiB
JavaScript
61 lines
1.6 KiB
JavaScript
const Router = require('koa-router');
|
|
const router = new Router();
|
|
const koaBody = require('koa-body');
|
|
|
|
// import tools
|
|
const mysql = require('../../libs/mysql_pool.js');
|
|
const config = require('../../config.json');
|
|
|
|
// routes
|
|
const user_api = require('./user.js');
|
|
|
|
// api response handler
|
|
router.use(async(c, n) => {
|
|
c.db = await mysql.getConn();
|
|
c.syncQuery = (query, param = null) => {
|
|
return new Promise((resolve, reject) => {
|
|
if (param != null) {
|
|
c.db.query(query, param, (err, row) => {
|
|
if (err) return reject(err);
|
|
return resolve(row)
|
|
});
|
|
} else {
|
|
c.db.query(query, (err, row) => {
|
|
if (err) return reject(err);
|
|
return resolve(row)
|
|
});
|
|
}
|
|
})
|
|
}
|
|
await n();
|
|
if ('db' in c && typeof c.db == 'object' && 'release' in c.db && typeof c.db.release == 'function') c.db.release();
|
|
switch (typeof c.body) {
|
|
case 'undefined':
|
|
c.body = { errorCode: 'ERR9999', status: 0 };
|
|
case 'string':
|
|
c.body = { errorCode: c.body, status: 0 };
|
|
default:
|
|
c.body = {
|
|
data: c.body,
|
|
status: 1
|
|
}
|
|
}
|
|
})
|
|
|
|
|
|
// enable bodyParser
|
|
router.all('*', koaBody({
|
|
multipart: true,
|
|
// upload file size 10mb
|
|
maxFieldSize: 10 * 1024 * 1024
|
|
}), async(c, n) => { await n(); })
|
|
|
|
router
|
|
.get('/', async(c, n) => {
|
|
c.body = {
|
|
msg: 'API Endpoint'
|
|
};
|
|
})
|
|
.use('/user', user_api.routes())
|
|
|
|
module.exports = router; |