forked from dennisdegreef/mqtt-mongo-recorder
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathserver.js
41 lines (35 loc) · 1.13 KB
/
server.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
/**
*
* This NodeJS application listens to MQTT messages and records them to MongoDB
*
* @author Dennis de Greef <[email protected]>
* @license MIT
*
*/
var mongodb = require('mongodb');
var mqtt = require('mqtt');
var config = require('./config');
var mqttUri = 'mqtt://' + config.mqtt.hostname + ':' + config.mqtt.port;
var client = mqtt.connect(mqttUri);
client.on('connect', function () {
client.subscribe(config.mqtt.namespace);
});
var mongoUri = 'mongodb://' + config.mongodb.hostname + ':' + config.mongodb.port + '/' + config.mongodb.database;
mongodb.MongoClient.connect(mongoUri, function(error, database) {
if(error != null) {
throw error;
}
var collection = database.collection(config.mongodb.collection);
collection.createIndex( { "topic" : 1 } );
client.on('message', function (topic, message) {
var messageObject = {
topic: topic,
message: message.toString()
};
collection.insert(messageObject, function(error, result) {
if(error != null) {
console.log("ERROR: " + error);
}
});
});
});