connected to atlas
This commit is contained in:
4
dist/main.js
vendored
4
dist/main.js
vendored
@ -7,9 +7,9 @@ const MongoSave = require("./mongosave");
|
||||
log.info("Dispatcher starting");
|
||||
let dispatcher = new mqtt.MqttDispatcher("mqtts://broker.hottis.de:8883", "wn", "locutus", "/home/wn/server-ca.crt");
|
||||
dispatcher.register('IoT/espThermometer2/#', 'toJson', EspThermToJson.espThermToJson);
|
||||
let mongo = new MongoSave.MongoSave();
|
||||
let atlasUrl = "mongodb://receiver:esp8266.@cluster0-shard-00-00-7qduq.mongodb.net:27017,cluster0-shard-00-01-7qduq.mongodb.net:27017,cluster0-shard-00-02-7qduq.mongodb.net:27017/hottis?ssl=true&replicaSet=Cluster0-shard-0&authSource=admin";
|
||||
let mongo = new MongoSave.MongoSave(atlasUrl);
|
||||
dispatcher.register('IoT/espThermometer2/#', 'MongoSave', mongo);
|
||||
// plugintest1.pluginTest1Start(dispatcher)
|
||||
dispatcher.exec();
|
||||
log.info("Dispatcher running");
|
||||
//# sourceMappingURL=main.js.map
|
39
dist/mongosave.js
vendored
39
dist/mongosave.js
vendored
@ -1,11 +1,48 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const CallChain = require("./callchain");
|
||||
const log = require("./log");
|
||||
const MongoDB = require("mongodb");
|
||||
class MongoSave extends CallChain.ABaseChainItem {
|
||||
constructor() {
|
||||
constructor(url) {
|
||||
super('MongoSave');
|
||||
this._url = url;
|
||||
this._mongoClient = new MongoDB.MongoClient();
|
||||
this._connectPending = false;
|
||||
}
|
||||
func(message) {
|
||||
if (!this._dbh) {
|
||||
log.info("Not database connection yet");
|
||||
if (!this._connectPending) {
|
||||
this._connectPending = true;
|
||||
this._mongoClient.connect(this._url)
|
||||
.then((db) => {
|
||||
log.info("Successfully opened MongoDB connect");
|
||||
this._dbh = db;
|
||||
})
|
||||
.catch((err) => {
|
||||
log.error(`Failure when opening MongoDB connect: ${err}`);
|
||||
this._dbh = undefined;
|
||||
});
|
||||
}
|
||||
else {
|
||||
log.info("Connecting to database is pending");
|
||||
}
|
||||
}
|
||||
if (this._dbh) {
|
||||
log.info("Database handle is available");
|
||||
let coll = this._dbh.collection("iot");
|
||||
coll.insertOne(message)
|
||||
.then((res) => {
|
||||
log.info(`Successfully wrote one item in database: ${res.insertedId}`);
|
||||
})
|
||||
.catch((err) => {
|
||||
log.error(`Failure when trying to write one item in database: ${err}`);
|
||||
});
|
||||
}
|
||||
else {
|
||||
log.error(`No database connection yet, drop message ${message}`);
|
||||
}
|
||||
return "<<" + message + ">>";
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user