Alte Version abgeändert auf neue Datebank /-Struktur).

This commit is contained in:
rxf
2026-03-27 17:26:46 +01:00
commit b7736413d4
87 changed files with 54060 additions and 0 deletions

170
geiger-app.js Executable file
View File

@@ -0,0 +1,170 @@
const express = require('express');
const geigerApp = express();
//var assert = require('assert');
const bodyParser = require("body-parser");
const MongoClient = require('mongodb').MongoClient;
const os = require('os');
const moment = require('moment');
// Consts
const PORT = process.env.SERVERPORT || 3005; // Port for server
const debug = (process.env.DEBUG == "true");
const MONGOHOST = process.env.MONGOHOST || 'localhost';
const MONGOPORT = process.env.MONGOPORT || 27017;
const MONGOAUTH = (process.env.MONGOAUTH == "true");
const MONGOUSRP = process.env.MONGOUSRP || "";
const MONGOBASE = process.env.MONGOBASE || 'Feinstaubi_A';
const MONGO_URL = MONGOAUTH ? 'mongodb://'+MONGOUSRP+'@' + MONGOHOST + ':' + MONGOPORT + '/?authSource=admin' : 'mongodb://'+MONGOHOST+':'+MONGOPORT; // URL to mongo database
console.log(os.hostname());
if (debug) {
console.log(`MongoURL = "${MONGO_URL}" and Database = ${MONGOBASE}`);
}
geigerApp.set('views','./views');
geigerApp.set('view engine','pug');
geigerApp.use(express.static("public"));
geigerApp.use(express.static("node_modules/bootstrap/dist"));
geigerApp.use(express.static("node_modules/jquery/dist"));
geigerApp.use(express.static("node_modules/moment/min"));
geigerApp.use(express.static("node_modules/leaflet/dist"));
geigerApp.use(express.static("node_modules/d3/dist"));
let requested;
async function checkHost(req, res, next) {
if (
(req.headers.host == 'test1.rexfue.de') ||
(req.headers.host == 'multigeiger.rexfue.de') ||
(req.headers.host == 'multigeiger.citysensor.de') ||
(req.headers.host == 'test2.citysensor.de') ||
(req.headers.host == 'localhost:'+PORT) ||
(req.headers.host == 'nuccy:3005') ||
(req.headers.host == 'h2953026.stratoserver.net:8082') ||
(req.headers.host == '213.136.85.253:'+PORT) ||
(req.headers.host == '192.168.178.78:'+PORT) ||
(req.headers.host == 'macbig:'+PORT) //Port is important if the url has it
) {
req.url = '/fs' + req.url;
}
// console.log("Path:",req.path);
if(req.path.startsWith('/TEST')) {
req.url = '/TEST' + req.url;
}
let uri = req.url.substr(3);
let city = "unknown";
let dbs = geigerApp.get('dbase');
// if (!isNaN(uri.substring(1) - parseInt(uri.substring(1))))
if (isNaN(uri.substring(1))) {
city = await apidatas.api.getCity(dbs, parseInt(uri.substring(1)));
}
if(
(!isNaN(uri.substring(1) - parseInt(uri.substring(1)))) ||
(uri.substring(1,4)=='api') ||
((uri.substring(1,4) == 'map') && (uri.substring(4,5) != 'd'))
) {
console.log(moment().format()," ", uri, " ", city);
}
if (req.url.substring(4,5) == 'i') {
req.url = '/fs/' + req.url.substring(5);
}
next();
}
geigerApp.get('*', checkHost);
geigerApp.post('*', checkHost);
geigerApp.use(bodyParser.urlencoded({ extended: true }));
geigerApp.use(bodyParser.json());
//app.post('/sensors', function(res,req,next){
// var body = res.body;
// var espid = res.headers['x-sensor'];
//
// console.log(espid,body);
//
//})
geigerApp.get('/fs/fsdata/help', function(req, res, next) {
res.sendFile(__dirname+'/public/info.html');
});
geigerApp.get('/fs/fsdata/splash', function(req, res, next) {
res.sendFile(__dirname+'/public/splash.html');
});
geigerApp.get('/fs/fsdata/settingW', function(req, res, next) {
res.sendFile(__dirname+'/public/settingsW.html');
});
geigerApp.get('/fs/fsdata/settingD', function(req, res, next) {
res.sendFile(__dirname+'/public/settingsD.html');
});
geigerApp.get('/fs/fsdata/statistik', function(req, res, next) {
res.sendFile(__dirname+'/public/statistik.html');
});
geigerApp.get('/fs/fsdata/centermap', function(req, res, next) {
res.sendFile(__dirname+'/public/centermap.html');
});
geigerApp.get('/fs/fsdata/helpmap', function(req, res, next) {
res.sendFile(__dirname+'/public/helpmap.html');
});
geigerApp.get('/fs/fsdata/fehlersensoren', function(req, res, next) {
res.sendFile(__dirname+'/public/fehlersensoren.html');
});
geigerApp.get('/fs/fsdata/fehlerliste', function(req, res, next) {
res.sendFile(__dirname+'/public/fehlerliste.html');
});
geigerApp.get('/fs/fsdata/selsensor', function(req, res, next) {
res.sendFile(__dirname+'/public/selsensor.html');
});
geigerApp.get('/fs/fsdata/ymax', function(req, res, next) {
res.sendFile(__dirname+'/public/ymax.html');
});
geigerApp.get('/fs/fsdata/selnewday', function(req, res, next) {
res.sendFile(__dirname+'/public/selnewday.html');
});
geigerApp.get('/fs/fsdata/erralert', function(req, res, next) {
res.sendFile(__dirname+'/public/erralert.html');
});
var indexs = require('./routes/index');
geigerApp.use('/fs/',indexs);
var fsdatas1 = require('./routes/fsdata');
geigerApp.use('/fs/fsdata',fsdatas1);
var fsdatas2 = require('./routes/mapdata');
geigerApp.use('/fs/mapdata',fsdatas2);
var apidatas = require('./routes/apidata');
geigerApp.use('/fs/api',apidatas);
const connect = MongoClient.connect(MONGO_URL, {useNewUrlParser: true ,useUnifiedTopology: true});
connect
.then(client => {
geigerApp.set('dbase', client.db(MONGOBASE)); // Übergabe von db
geigerApp.listen(PORT, function () {
console.log(moment().format("YYYY-MM-DD HH:mm"), "App listens on port " + PORT +', Mongo at ' + MONGOHOST);
})
})
.catch(err => {
console.log(err);
process.exit(-1);
});