This repository was archived by the owner on Jun 4, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathindex.js
More file actions
73 lines (63 loc) · 1.63 KB
/
index.js
File metadata and controls
73 lines (63 loc) · 1.63 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
"use strict";
const mw = require("./lib/middleware");
const actions = require("./lib/actions");
const app = require("express")();
const bodyParser = require("body-parser");
const morgan = require("morgan");
const winston = require("winston");
const argv = require("minimist")(process.argv.slice(2));
const bodyLimit = argv.limit || "50mb";
const port = argv.port || 3000;
const logLevel = argv.loglevel || "info";
process.on("SIGINT", () => {
console.info("Interrupted");
process.exit(0);
});
const logger = winston.createLogger({
transports: [
new winston.transports.Console({
level: logLevel,
json: true,
}),
],
});
app.U = app.U || {};
app.U.logger = logger;
const morganJSONFormat = () =>
JSON.stringify({
method: ":method",
url: ":url",
http_version: ":http-version",
remote_addr: ":remote-addr",
remote_addr_forwarded: ":req[x-forwarded-for]", //Get a specific header
response_time: ":response-time",
status: ":status",
content_length: ":res[content-length]",
timestamp: ":date[iso]",
user_agent: ":user-agent",
});
app.use(
morgan(morganJSONFormat(), {
stream: {
write: (message) => {
const data = JSON.parse(message);
return logger.info("accesslog", data);
},
},
})
);
app.get("/ping", actions.ping);
app.use("/", [
mw.setHeaders,
bodyParser.json({ limit: bodyLimit }),
mw.setupTemp,
mw.writeHtmlFile,
mw.convertHtmlToPdf,
mw.createFileList,
mw.mergeFileList,
mw.createPdfStamp,
mw.addStamp,
mw.errorHandler,
]);
app.post("/", actions.sendFile);
app.listen(port, () => console.log("server listening on port %d", port));