kodex-music-catalog/server.js
2023-10-06 05:05:19 +03:00

66 lines
1.5 KiB
JavaScript

"use strict";
const express = require("express");
//const bodyHand = require("body");
const config = require("./config-handler");
// const http = require("http");
const { Database } = require("./database");
const { Logger } = require('./logger');
const bodyParser = require('body-parser');
const app = express();
// Выставляем адекватное ограничение на тело запроса
app.use(bodyParser.json({limit: config().request_size_limit}));
app.use(
(req, res, next) => {
// Поставил по-умолчанию
res.result = function (data, isErr = false, code = 200) {
this.status(code).json(!isErr ? {
response : data
} : {
error : data
});
};
next();
}
);
app.use(async (req, res, next) => {
req.logger = new Logger();
req.logger.log(
new Date(),
req.ip,
`Пользователь обратился по пути: ${req.originalUrl} (HTTP ${req.httpVersion}; ${req.method})`
);
next();
});
app.use("/", require("./page-view"));
app.use("/api", require("./api"));
// Подключение через HTTPS
let server;
if (!config().ssl.enabled) {
server = app;
} else {
const https = require("https");
server = https.createServer(
{
cert: fs.readFileSync(config().ssl["public"], "utf-8"),
key: fs.readFileSync(config().ssl["private"], "utf-8"),
},
app,
);
}
server.listen(config().port, config().address, async (err) => {
if (err) {
throw err;
} else {
console.log(
`Kodex Muzic catalog runned at ${config().address}:${config().port}`,
);
}
});