diff --git a/lib/router.js b/lib/router.js
index bf12d8b5c..2b1de87cf 100644
--- a/lib/router.js
+++ b/lib/router.js
@@ -1,90 +1,10 @@
const Router = require('koa-router');
const router = new Router();
-const art = require('art-template');
-const path = require('path');
const config = require('./config');
const logger = require('./utils/logger');
-const pidusage = require('pidusage');
-let gitHash;
-try {
- gitHash = require('git-rev-sync').short();
-} catch (e) {
- gitHash = (process.env.HEROKU_SLUG_COMMIT && process.env.HEROKU_SLUG_COMMIT.slice(0, 7)) || 'unknown';
-}
-router.get('/', async (ctx) => {
- ctx.set({
- 'Content-Type': 'text/html; charset=UTF-8',
- });
-
- const routes = Object.keys(ctx.debug.routes).sort((a, b) => ctx.debug.routes[b] - ctx.debug.routes[a]);
- const hotRoutes = routes.slice(0, 50);
- let hotRoutesValue = '';
- hotRoutes.forEach((item) => {
- hotRoutesValue += `${ctx.debug.routes[item]} ${item}
`;
- });
-
- const ips = Object.keys(ctx.debug.ips).sort((a, b) => ctx.debug.ips[b] - ctx.debug.ips[a]);
- const hotIPs = ips.slice(0, 50);
- let hotIPsValue = '';
- hotIPs.forEach((item) => {
- hotIPsValue += `${ctx.debug.ips[item]} ${item}
`;
- });
-
- let showDebug;
- if (!config.debugInfo || config.debugInfo === 'false') {
- showDebug = false;
- } else {
- showDebug = config.debugInfo === true || config.debugInfo === ctx.query.debug;
- }
-
- const stats = await pidusage(process.pid);
-
- ctx.set({
- 'Cache-Control': 'no-cache',
- });
- ctx.body = art(path.resolve(__dirname, './views/welcome.art'), {
- showDebug,
- debug: [
- {
- name: 'git hash',
- value: gitHash,
- },
- {
- name: '请求数',
- value: ctx.debug.request,
- },
- {
- name: '请求频率',
- value: ((ctx.debug.request / (stats.elapsed / 1000)) * 60).toFixed(3) + ' 次/分钟',
- },
- {
- name: '缓存命中率',
- value: ctx.debug.request ? (ctx.debug.hitCache / ctx.debug.request).toFixed(3) : 0,
- },
- {
- name: '内存占用',
- value: stats.memory / 1000000 + ' MB',
- },
- {
- name: 'CPU 占用',
- value: stats.cpu + '%',
- },
- {
- name: '运行时间',
- value: (stats.elapsed / 3600000).toFixed(2) + ' 小时',
- },
- {
- name: '热门路由',
- value: hotRoutesValue,
- },
- {
- name: '热门IP',
- value: hotIPsValue,
- },
- ],
- });
-});
+// index
+router.get('/', require('./routes/index'));
// test
router.get('/test/:id', require('./routes/test'));
diff --git a/lib/routes/index.js b/lib/routes/index.js
new file mode 100644
index 000000000..f266a8f11
--- /dev/null
+++ b/lib/routes/index.js
@@ -0,0 +1,85 @@
+const config = require('@/config');
+const art = require('art-template');
+const path = require('path');
+const pidusage = require('pidusage');
+
+let gitHash;
+try {
+ gitHash = require('git-rev-sync').short();
+} catch (e) {
+ gitHash = (process.env.HEROKU_SLUG_COMMIT && process.env.HEROKU_SLUG_COMMIT.slice(0, 7)) || 'unknown';
+}
+
+module.exports = async (ctx) => {
+ ctx.set({
+ 'Content-Type': 'text/html; charset=UTF-8',
+ });
+
+ const routes = Object.keys(ctx.debug.routes).sort((a, b) => ctx.debug.routes[b] - ctx.debug.routes[a]);
+ const hotRoutes = routes.slice(0, 50);
+ let hotRoutesValue = '';
+ hotRoutes.forEach((item) => {
+ hotRoutesValue += `${ctx.debug.routes[item]} ${item}
`;
+ });
+
+ const ips = Object.keys(ctx.debug.ips).sort((a, b) => ctx.debug.ips[b] - ctx.debug.ips[a]);
+ const hotIPs = ips.slice(0, 50);
+ let hotIPsValue = '';
+ hotIPs.forEach((item) => {
+ hotIPsValue += `${ctx.debug.ips[item]} ${item}
`;
+ });
+
+ let showDebug;
+ if (!config.debugInfo || config.debugInfo === 'false') {
+ showDebug = false;
+ } else {
+ showDebug = config.debugInfo === true || config.debugInfo === ctx.query.debug;
+ }
+
+ const stats = await pidusage(process.pid);
+
+ ctx.set({
+ 'Cache-Control': 'no-cache',
+ });
+ ctx.body = art(path.resolve(__dirname, '../views/welcome.art'), {
+ showDebug,
+ debug: [
+ {
+ name: 'git hash',
+ value: gitHash,
+ },
+ {
+ name: '请求数',
+ value: ctx.debug.request,
+ },
+ {
+ name: '请求频率',
+ value: ((ctx.debug.request / (stats.elapsed / 1000)) * 60).toFixed(3) + ' 次/分钟',
+ },
+ {
+ name: '缓存命中率',
+ value: ctx.debug.request ? (ctx.debug.hitCache / ctx.debug.request).toFixed(3) : 0,
+ },
+ {
+ name: '内存占用',
+ value: stats.memory / 1000000 + ' MB',
+ },
+ {
+ name: 'CPU 占用',
+ value: stats.cpu + '%',
+ },
+ {
+ name: '运行时间',
+ value: (stats.elapsed / 3600000).toFixed(2) + ' 小时',
+ },
+ {
+ name: '热门路由',
+ value: hotRoutesValue,
+ },
+ {
+ name: '热门IP',
+ value: hotIPsValue,
+ },
+ ],
+ });
+};