espid2sensor in Hauptstack aufnehmen, verschachteltes Git-Repo aufgeloest
espid2sensor lief bisher nur per eigenem Dev-Compose mit isolierter Wegwerf-Mongo. Jetzt Teil von noisesensors/docker-compose.yml, Port 3004, Zugriff auf die dort laufende mongodb-Instanz (sensor_data). DEV_AUTO_LOGIN explizit aus, SESSION_SECRET ueber neue Env-Variable statt Code-Default. Dockerfile_esp2sensor an das Muster der anderen Services angeglichen (node:22-alpine, /opt/app, npm ci, tzdata/Europe-Berlin, deluser node). espid2sensor/.git entfernt (war eigenes verschachteltes Repo) und der komplette Verzeichnisinhalt ins laermsensor-stack-Repo uebernommen. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
import { MongoClient } from 'mongodb';
|
||||
import dotenv from 'dotenv';
|
||||
|
||||
dotenv.config();
|
||||
|
||||
const MONGOHOST = process.env.MONGOHOST || 'localhost'
|
||||
const MONGOPORT = process.env.MONGOPORT || 27017
|
||||
const MONGOAUTH = process.env.MONGOAUTH || false
|
||||
const MONGOUSRP = process.env.MONGOUSRP || ''
|
||||
const MONGOBASE = process.env.MONGOBASE || 'sensor_data'
|
||||
let MONGO_URL = 'mongodb://'+MONGOHOST+':'+MONGOPORT; // URL to mongo database
|
||||
if (MONGOAUTH === 'true') {
|
||||
MONGO_URL = 'mongodb://'+MONGOUSRP+'@' + MONGOHOST + ':' + MONGOPORT + '/?authSource=admin'; // URL to mongo database
|
||||
}
|
||||
const DB_NAME = MONGOBASE
|
||||
|
||||
let db, usersCollection, propCollection;
|
||||
let client = null;
|
||||
|
||||
export async function initMongo() {
|
||||
const client = new MongoClient(MONGO_URL);
|
||||
await client.connect();
|
||||
db = client.db(DB_NAME);
|
||||
usersCollection = db.collection('user');
|
||||
propCollection = db.collection('properties')
|
||||
return { db, usersCollection, propCollection};
|
||||
}
|
||||
|
||||
export const clientClose = async () => {
|
||||
if (client) {
|
||||
client.close()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
export function getCollections() {
|
||||
return { db, usersCollection, propCollection};
|
||||
}
|
||||
|
||||
export const update_pflux = async(sn, doc) => {
|
||||
try {
|
||||
await propCollection.updateOne({_id: sn},{ $set: { 'chip': doc}})
|
||||
return {"error": null}
|
||||
} catch (e) {
|
||||
return { "error": true, "what": e}
|
||||
}
|
||||
}
|
||||
|
||||
export const get_pflux = async(sn) => {
|
||||
try {
|
||||
let r = await propCollection.findOne({_id: sn})
|
||||
if (r == null) {
|
||||
return { "error": true, "what": "Not found", "erg": r}
|
||||
}
|
||||
return {"error": null, "what": null, "erg": r}
|
||||
} catch (e) {
|
||||
return { "error": true, "what": e, "erg": null}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user