1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- /**
- * 管理端点。负责数据库,服务器状态等内容反馈。
- */
- var express = require('express');
- var router = express.Router();
- var configFile = require('../include/commons').CONFIG_FILE;
- var config = require('../resources/config/' + configFile);
- var wlyyRepo = require('../repository/database/wlyy.db.js');
- var imRepo = require('../repository/database/im.db.js');
- var log = require('../util/log');
- var APIv1 = require('../include/endpoints').APIv1;
- var _ = require('underscore');
- function getWlyyTables(handler) {
- wlyyRepo.execQuery({
- "sql": "SELECT table_name FROM information_schema.TABLES WHERE TABLE_SCHEMA = ?",
- "args": [config.wlyyDbConfig.database],
- "handler": handler
- });
- }
- function getImTables(handler) {
- imRepo.execQuery({
- "sql": "SELECT table_name FROM information_schema.TABLES WHERE TABLE_SCHEMA = ?",
- "args": [config.imDbConfig.database],
- "handler": handler
- });
- }
- function makeResponse(dbStatus, dbName, err, result) {
- if (err) {
- dbStatus.push({
- name: dbName,
- status: 'Failed',
- message: err
- });
- } else {
- var tableList = new Array();
- _.each(result, function (row) {
- tableList.push(row.table_name);
- });
- var status = {
- name: dbName,
- status: 'OK',
- tables: tableList
- };
- dbStatus.push(status);
- }
- }
- /**
- * 数据库检查,包括所有表,连接状态。
- */
- router.get(APIv1.Management.DbStatus, function (req, res, next) {
- var dbStatus = new Array(0);
- getImTables(function (err, result) {
- makeResponse(dbStatus, config.imDbConfig.database, err, result);
- getWlyyTables(function (err, result) {
- makeResponse(dbStatus, config.wlyyDbConfig.database, err, result);
- res.json(dbStatus);
- });
- });
- });
- module.exports = router;
|