This commit is contained in:
masnn committed 2020-06-11 22:46:10 +08:00
1 parent 8c20c34d8b
commit ca11d80776
45 files changed
+418 -444

No files matched your search

+24
View File
@@ -0,0 +1,24 @@
const { Route, Handler } = require('../service/server');
const { NotFoundError } = require('../error');
class WikiHandler extends Handler {
async get({ name }) {
if (!global.Hydro.wiki[name]) throw new NotFoundError(name);
const contents = global.Hydro.wiki[name];
const path = [
['Hydro', '/'],
['wiki', '/wiki'],
[`wiki_${name}`, null],
];
this.response.body = {
path, contents, page_name: `wiki_${name}`,
};
this.response.template = 'wiki.html';
}
}
async function apply() {
Route('/wiki/:name', WikiHandler);
}
global.Hydro.handler.wiki = module.exports = apply;
+8 -7
View File
@@ -166,7 +166,7 @@ const builtinModel = [
const builtinHandler = [
'home', 'problem', 'record', 'judge', 'user',
'contest', 'training', 'discussion', 'manage', 'import',
'misc', 'homework', 'domain',
'misc', 'homework', 'domain', 'wiki',
];
const builtinScript = [
@@ -297,23 +297,25 @@ async function terminate() {
}
async function load() {
global.nodeModules = {
bson: require('bson'),
'js-yaml': require('js-yaml'),
mongodb: require('mongodb'),
};
global.Hydro = {
handler: {},
service: {},
model: {},
script: {},
lib: {},
nodeModules: {
bson: require('bson'),
'js-yaml': require('js-yaml'),
mongodb: require('mongodb'),
},
wiki: {},
template: {},
ui: {},
};
global.onDestory = [];
Error.stackTraceLimit = 50;
process.on('unhandledRejection', (e) => console.error(e));
process.on('SIGINT', terminate);
if (cluster.isMaster) {
console.log(`Master ${process.pid} Starting`);
process.stdin.setEncoding('utf8');
@@ -326,7 +328,6 @@ async function load() {
console.warn(e);
}
});
process.on('SIGINT', terminate);
await loadAsMaster();
cluster.on('exit', (worker, code, signal) => {
console.log(`Worker ${worker.process.pid} exit: ${code} ${signal}`);