Repository navigation
Expand file tree
/
Copy pathapp.js
More file actions
83 lines (74 loc) · 1.98 KB
/
Copy pathapp.js
File metadata and controls
83 lines (74 loc) · 1.98 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
require("dotenv").config();
const express = require("express");
const bodyParser = require("body-parser");
const config = require("./config");
const cors = require("cors");
const cluster = require("cluster");
const os = require("os");
const cpus = config.maxWorkers || os.cpus().length;
const api = require("./api");
const Logger = require("logplease");
const logger = Logger.create("log");
const db = require("./db");
Object.defineProperty(global, "__stack", {
get: function() {
var orig = Error.prepareStackTrace;
Error.prepareStackTrace = function(_, stack) {
return stack;
};
var err = new Error();
Error.captureStackTrace(err, arguments.callee);
var stack = err.stack;
Error.prepareStackTrace = orig;
return stack;
}
});
Object.defineProperty(global, "__line", {
get: function() {
return __stack[1].getLineNumber();
}
});
Object.defineProperty(global, "__function", {
get: function() {
return __stack[1].getFunctionName();
}
});
if (cluster.isMaster) {
for (var i = 0; i < cpus; i++) {
const worker = cluster.fork();
}
cluster.on("exit", worker => {
console.log(`worker ${worker.process.pid} died`);
cluster.fork();
});
} else {
let app = express();
global.logger = logger;
app.use(cors());
app.use(bodyParser.json({ limit: "50mb" }));
app.use(bodyParser.urlencoded({ limit: "50mb", extended: true }));
app.use(bodyParser.raw({ inflate: true, limit: "100mb", type: "*/*" }));
app.use((err, req, res, next) => {
if (err) {
let mensage = err.type;
if (err.type === "entity.parse.failed") {
mensage = "Json inválido";
}
res.send({
statusCode: err.statusCode,
type: err.type,
mensage: mensage
});
return;
}
next();
});
app.get("/", function(req, res) {
res.send({ App: config.app.title });
});
app.use("/api", api);
db.start();
app.listen(config.port, () => {
global.logger.info(`api up on port ${config.port}`);
});
}