masquitos

Untitled

Oct 13th, 2020 (edited)
248
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const path = require("path");
  2. const express = require("express");
  3. const app = express();
  4. const bodyParser = require("body-parser");
  5. const environment = require("./environment.js");
  6. const server = require("http").createServer(app);
  7.  
  8. const apiRouter = require(path.resolve(__dirname, "./routes/api/api-router"));
  9. const publicRouter = require(path.resolve(
  10.   __dirname,
  11.   "./routes/public/public-router"
  12. ));
  13. const helpDeskApiRouter = require(path.resolve(
  14.   __dirname,
  15.   "./helpdesk/router/api/api-router"
  16. ));
  17. const helpDeskPublicRouter = require(path.resolve(
  18.   __dirname,
  19.   "./helpdesk/router/public/public-router"
  20. ));
  21. const io = require("socket.io")(server);
  22. const socket = require("./socket.js");
  23. socket.init(io);
  24. const dbWorker = require("./db-worker");
  25. dbWorker.init();
  26. const LogContext = require("./helper/logcontext");
  27. const MyLogger = require("./helper/mylogger");
  28. const requester = require("./helper/requester");
  29. const errorCodes = require("./model/errorcodes");
  30. const fileName = require("path").basename(__filename);
  31. const { AsyncLocalStorage } = require("async_hooks");
  32. const uuid = require("uuid/v4");
  33. const asyncLocalStorage = new AsyncLocalStorage();
  34. const cls = require("cls-hooked");
  35. const createNamespace = require("cls-hooked").createNamespace;
  36. const session = createNamespace("my session");
  37.  
  38.  
  39. app.use((req, res, next) => {
  40.   asyncLocalStorage.run(new Map(), () => {
  41.     asyncLocalStorage.getStore().set("requestId", uuid());
  42.     next();
  43.   });
  44. });
  45.  
  46. // body parser
  47. app.use(
  48.   bodyParser.json({
  49.     limit: "10mb"
  50.   })
  51. );
  52. app.use((err, req, res, next) => {
  53.   if (err) {
  54.     MyLogger.warn(req.reqId, fileName, " bodyParser error: " + err.message);
  55.     const body = requester.createError(errorCodes.INVALID_DATA);
  56.     res.json(body);
  57.   } else {
  58.     next();
  59.   }
  60. });
  61.  
  62. // Пользователи
  63. app.use("/api", apiRouter);
  64. app.use("/public", publicRouter);
  65. // Поддержка
  66. app.use("/apiv2/helpdesk", helpDeskApiRouter);
  67. app.use("/publicv2/helpdesk", helpDeskPublicRouter);
  68.  
  69. // Запуск сервера
  70. server.listen(environment.port, environment.host, function() {
  71.   console.log(
  72.     "Node server started on %s://%s:%d",
  73.     environment.http_type,
  74.     environment.host,
  75.     environment.port
  76.   );
  77. });
  78.  
  79. module.exports.server = server;
  80. module.exports.asyncLocalStorage = asyncLocalStorage;
  81.  
  82.  
  83. // MyLogger
  84.  
  85. static log(logId, className, text) {
  86.     const asyncLocalStorage = require("../server.js").asyncLocalStorage;
  87.     const id = asyncLocalStorage.getStore().get("requestId");
  88.     console.log(this._getBaseStaticLog(logId, logTypes.LOG, text, className));
  89.   }
  90.  
Add Comment
Please, Sign In to add comment