From a421153173991d7a56fb74ff56a0e7b06c27da63 Mon Sep 17 00:00:00 2001 From: Wolfgang Hottgenroth Date: Sun, 30 Apr 2017 19:00:16 +0200 Subject: [PATCH] introduce mongodb connection --- package.json | 8 +++++--- src/main.ts | 26 ++++++++++++++++++++++---- 2 files changed, 27 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 3458da4..b514414 100644 --- a/package.json +++ b/package.json @@ -10,18 +10,20 @@ }, "author": "Wolfgang Hottgenroth", "license": "ISC", - "repository": { - "type" : "git", - "url" : "git@gitlab.com:wolutator/MqttMongoNodejs.git" + "repository": { + "type": "git", + "url": "git@gitlab.com:wolutator/MqttMongoNodejs.git" }, "devDependencies": { "@types/commander": "^2.9.0", + "@types/mongodb": "^2.2.0", "@types/mqtt": "0.0.34", "@types/node": "^7.0.14", "typescript": "^2.3.1" }, "dependencies": { "commander": "^2.9.0", + "mongodb": "^2.2.26", "mqtt": "^2.6.2" } } diff --git a/src/main.ts b/src/main.ts index 82784c2..d63a491 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,13 +1,31 @@ import * as Mqtt from 'mqtt' +import * as Mongo from 'mongodb' + + +var MQTT_BROKER_URL : String = 'mqtt://localhost' +var MONGO_DATABASE_URL : String = 'mongodb://localhost/test' + class MqttMongo { private mqttClient : Mqtt.Client + private dbHandle : Mongo.Db; + private msgCnt : number = 0; constructor() { this.mqttClient = Mqtt.connect(options['broker']) this.mqttClient.on('offline', () => { console.log("mqtt client is offline") }) this.mqttClient.on('reconnect', () => { console.log("mqtt client is reconnecting") }) this.mqttClient.on('close', () => { console.log("mqtt connection closed") }) + +/* + Mongo.MongoClient.connect(options['database']) + .then( + (dbHandle: Mongo.Db) => { this.dbHandle = dbHandle }, + (err: String) => { + console.log("Unable to connect to database: %s", err) + } + ) +*/ } exec(): void { @@ -18,9 +36,8 @@ class MqttMongo { }) this.mqttClient.on('message', (topic : string, message : string) => { - console.log("message received") - console.log("topic %s", topic) - console.log("message %s", message) + this.msgCnt++; + console.log(`message received ${this.msgCnt}, topic ${topic}, payload ${message}`) if (topic == "MqttMongo/Command" && message == "shutdown") { this.mqttClient.end() @@ -33,7 +50,8 @@ class MqttMongo { import options = require('commander') options .version('0.0.1') - .option('-b, --broker [broker url]', 'Broker URL', 'mqtt://mqttbroker') + .option('-b, --broker [broker url]', 'Broker URL', MQTT_BROKER_URL) + .option('-m, --database [database url]', 'MongoDB Database URL', MONGO_DATABASE_URL) .parse(process.argv) const mqttMongo = new MqttMongo()