66 lines
1.5 KiB
JavaScript
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}`,
|
|
);
|
|
}
|
|
});
|