MWSE/Source/HTTPServer.js

67 lines
1.6 KiB
JavaScript

"use strict";
let http = require("http");
let express = require("express");
let compression = require("compression");
let {resolve} = require("path");
let auth = require("express-basic-auth");
const {
termoutput,
HTTP_PORT,
NETWORK_MASK,
HTTP_AUTH,
HTTP_AUTH_USERNAME,
HTTP_AUTH_USERPASSWORD
} = require("./config");
let server = http.createServer();
const stats = require("./stats");
let app = express();
server.addListener("request", app);
app.use(compression({
level: 9
}));
server.listen(HTTP_PORT,NETWORK_MASK,() => {
termoutput && console.log("HTTP Service Running...");
});
server.addListener("error",(err)=> {
console.err(err)
})
exports.http = server;
let authorize = auth({
users:{
[HTTP_AUTH_USERNAME]: HTTP_AUTH_USERPASSWORD
},
challenge: true
});
app.get("/script",(request, response)=>{
response.sendFile(resolve("./script/index.js"))
});
app.get("/test",(request, response)=>{
response.sendFile(resolve("./script/test.html"))
});
app.get("/index.js.map",(request, response)=>{
response.sendFile(resolve("./script/index.js.map"))
});
if(HTTP_AUTH)
{
app.get("/stream",(request, response)=>{
response.sendFile(resolve("./public/index.html"))
});
app.use("/stream",express.static(resolve("./public")));
app.get("/",authorize,(request, response)=>{
response.sendFile(resolve("./script/index.html"))
});
app.post("/stats",authorize,(request, response)=>{
response.json(stats.others);
});
}
app.get("*",(request, response)=>{
response.sendFile(resolve("./script/status.xml"))
});