Sfoglia il codice sorgente

refactor server/crowi/index.js

Yuki Takei 5 anni fa
parent
commit
9421fa43b8
3 ha cambiato i file con 14 aggiunte e 10 eliminazioni
  1. 11 7
      src/server/crowi/index.js
  2. 1 1
      src/server/routes/index.js
  3. 2 2
      src/server/routes/installer.js

+ 11 - 7
src/server/crowi/index.js

@@ -35,6 +35,8 @@ function Crowi(rootdir) {
   this.tmpDir = path.join(this.rootDir, 'tmp') + sep;
   this.tmpDir = path.join(this.rootDir, 'tmp') + sep;
   this.cacheDir = path.join(this.tmpDir, 'cache');
   this.cacheDir = path.join(this.tmpDir, 'cache');
 
 
+  this.express = null;
+
   this.config = {};
   this.config = {};
   this.configManager = null;
   this.configManager = null;
   this.mailService = null;
   this.mailService = null;
@@ -378,7 +380,9 @@ Crowi.prototype.start = async function() {
   }
   }
 
 
   await this.init();
   await this.init();
-  const express = await this.buildServer();
+  await this.buildServer();
+
+  const { express } = this;
 
 
   // setup plugins
   // setup plugins
   this.pluginService = new PluginService(this, express);
   this.pluginService = new PluginService(this, express);
@@ -401,14 +405,14 @@ Crowi.prototype.start = async function() {
   this.io = io;
   this.io = io;
 
 
   // setup Express Routes
   // setup Express Routes
-  this.setupRoutesAtLast(express);
+  this.setupRoutesAtLast();
 
 
   return serverListening;
   return serverListening;
 };
 };
 
 
-Crowi.prototype.buildServer = function() {
-  const express = require('express')();
+Crowi.prototype.buildServer = async function() {
   const env = this.node_env;
   const env = this.node_env;
+  const express = require('express')();
 
 
   require('./express-init')(this, express);
   require('./express-init')(this, express);
 
 
@@ -427,15 +431,15 @@ Crowi.prototype.buildServer = function() {
     express.use(morgan('dev'));
     express.use(morgan('dev'));
   }
   }
 
 
-  return Promise.resolve(express);
+  this.express = express;
 };
 };
 
 
 /**
 /**
  * setup Express Routes
  * setup Express Routes
  * !! this must be at last because it includes '/*' route !!
  * !! this must be at last because it includes '/*' route !!
  */
  */
-Crowi.prototype.setupRoutesAtLast = function(app) {
-  require('../routes')(this, app);
+Crowi.prototype.setupRoutesAtLast = function() {
+  require('../routes')(this, this.express);
 };
 };
 
 
 /**
 /**

+ 1 - 1
src/server/routes/index.js

@@ -20,7 +20,6 @@ module.exports = function(crowi, app) {
   const logout = require('./logout')(crowi, app);
   const logout = require('./logout')(crowi, app);
   const me = require('./me')(crowi, app);
   const me = require('./me')(crowi, app);
   const admin = require('./admin')(crowi, app);
   const admin = require('./admin')(crowi, app);
-  const installer = require('./installer')(crowi, app);
   const user = require('./user')(crowi, app);
   const user = require('./user')(crowi, app);
   const attachment = require('./attachment')(crowi, app);
   const attachment = require('./attachment')(crowi, app);
   const comment = require('./comment')(crowi, app);
   const comment = require('./comment')(crowi, app);
@@ -41,6 +40,7 @@ module.exports = function(crowi, app) {
 
 
   // installer
   // installer
   if (!isInstalled) {
   if (!isInstalled) {
+    const installer = require('./installer')(crowi);
     app.get('/installer'               , applicationNotInstalled , installer.index);
     app.get('/installer'               , applicationNotInstalled , installer.index);
     app.post('/installer'              , applicationNotInstalled , form.register , csrf, installer.install);
     app.post('/installer'              , applicationNotInstalled , form.register , csrf, installer.install);
     return;
     return;

+ 2 - 2
src/server/routes/installer.js

@@ -1,4 +1,4 @@
-module.exports = function(crowi, app) {
+module.exports = function(crowi) {
   const logger = require('@alias/logger')('growi:routes:installer');
   const logger = require('@alias/logger')('growi:routes:installer');
   const path = require('path');
   const path = require('path');
   const fs = require('graceful-fs');
   const fs = require('graceful-fs');
@@ -87,7 +87,7 @@ module.exports = function(crowi, app) {
     // init plugins
     // init plugins
     crowi.pluginService.autoDetectAndLoadPlugins();
     crowi.pluginService.autoDetectAndLoadPlugins();
     // setup routes
     // setup routes
-    crowi.setupRoutesAtLast(app);
+    crowi.setupRoutesAtLast();
 
 
     // login with passport
     // login with passport
     req.logIn(adminUser, (err) => {
     req.logIn(adminUser, (err) => {