فهرست منبع

Рефакторинг

Book Pauk 6 سال پیش
والد
کامیت
a342f382b9
4فایلهای تغییر یافته به همراه55 افزوده شده و 23 حذف شده
  1. 40 0
      server/core/getLogger.js
  2. 0 16
      server/core/loggerInit.js
  3. 8 6
      server/index.js
  4. 7 1
      server/routes.js

+ 40 - 0
server/core/getLogger.js

@@ -0,0 +1,40 @@
+const utils = require('./utils');
+const Logger = require('./Logger');
+
+let logger = null;
+
+function initLogger(config) {
+    if (logger)
+        logger.close();
+
+    let loggerParams = null;
+
+    if (config.loggingEnabled) {
+        utils.mkDirIfNotExistsSync(config.logDir);
+        loggerParams = [
+            {log: 'ConsoleLog'},
+            {log: 'FileLog', fileName: `${config.logDir}/${config.name}.log`},
+        ];
+    }
+
+    logger = new Logger(loggerParams);
+
+    return logger;
+}
+
+function getLogger() {
+    if (logger)
+        return logger;
+    throw new Error('getLogger error: logger not initialized');
+}
+
+function getLog() {
+    const l = getLogger();
+    return l.log.bind(l);
+}
+
+module.exports = {
+    initLogger,
+    getLogger,
+    getLog,
+};

+ 0 - 16
server/core/loggerInit.js

@@ -1,16 +0,0 @@
-const utils = require('./utils');
-const Logger = require('./Logger');
-
-module.exports = function(config) {
-    let loggerParams = null;
-
-    if (config.loggingEnabled) {
-        utils.mkDirIfNotExistsSync(config.logDir);
-        loggerParams = [
-            {log: 'ConsoleLog'},
-            {log: 'FileLog', fileName: `${config.logDir}/${config.name}.log`},
-        ];
-    }
-
-    return new Logger(loggerParams);
-}

+ 8 - 6
server/index.js

@@ -1,24 +1,26 @@
+const config = require('./config/config');
+const {initLogger, getLog} = require('./core/getLogger');
+initLogger(config);
+const log = getLog();
+
 const express = require('express');
 const app = express();
 
-const config = require('./config/config');
-const logger = require('./core/loggerInit')(config);
-
 const SqliteConnectionPool = require('./core/SqliteConnectionPool');
 
 async function main() {
     const connPool = new SqliteConnectionPool(20, config);
     
-    logger.log('Opening database');
+    log('Opening database');
     await connPool.init();
 
     app.use(express.static('public'));
     app.use(express.json());
 
-    require('./routes')(app, connPool, logger, config);
+    require('./routes').initRoutes(app, connPool, config);
 
     app.listen(config.port, config.ip, function() {
-        logger.log('Server is ready');
+        log('Server is ready');
     });
 }
 

+ 7 - 1
server/routes.js

@@ -1,2 +1,8 @@
-module.exports = function(app, connPool, logger, config) {
+const log = require('./core/getLogger').getLog();
+
+function initRoutes(app, connPool, config) {
 };
+
+module.exports = {
+    initRoutes
+}