webio-node/route/api/index.js
2017-05-22 17:47:16 +08:00

61 lines
2.0 KiB
JavaScript

const express = require('express');
const router = express.Router();
const errMng = require('../../includes/errorManager');
const so = require('../../includes/storeObject');
const mysql = require('../../libs/mysql_pool');
router
.get('/', (req, res) => {
res.send({ name: 'WebIO API System' });
})
.all('*', (req, res, n) => {
if ('x-auth-token' in req.headers) {
let token = req.headers['x-auth-token'];
if (so.chkKey(token)) {
let obj = so.get(token);
if (obj != null) {
so.set(token, obj);
}
}
}
n();
})
.get('/showallso', (req, res) => {
res.send(so.show());
})
.use('/system', require('./system.js'))
.use('/log', require('./log.js'))
.use('/leone', require('./leone.js'))
.use('/iogroup', require('./iogroup.js'))
.use('/iocmd', require('./iocmd.js'))
.use('/schedule', require('./schedule.js'))
.use('/dio', require('./dio.js'))
.use('/link', require('./link.js'))
.use('/modbus', require('./modbus.js'))
.use('/ipcam', require('./ipcam.js'))
.use('/server', require('./server.js'))
.use('/wristband', require('./wristband.js'));
// api error handler
router.use((err, req, res, n) => {
if ('db' in res && typeof res.db == 'object' && 'close' in res.db && typeof res.db.close == 'function') res.db.close();
if ('db' in res && typeof res.db == 'object' && 'release' in res.db && typeof res.db.release == 'function') res.db.release();
let lngs = req.headers['accept-language'] || '';
lngs = lngs.split(',');
let lng = null;
if (lngs.length > 0) {
lng = lngs[0].substring(0, 2);
}
let json = {
errorCode: (typeof err != 'string' ? err.toString() : err),
message: errMng(err, lng),
status: 0
};
if ('sys_err' in res && process.env.NODE_ENV != 'production') json.sys_err = res.sys_err;
res.send(json);
})
module.exports = router;