node-mongodb防止websocket数据丢失

我在一个使用SocketCluster作为pub / sub的websocket API的客户端。

通过身份validation后,我通过接收每一个json数据

SCsocket.on('authenticate', function(){ var channel = SCsocket.subscribe('channel1'); channel.watch(function(data){ console.log(data); }); }); 

的forms

 [ { "product": "Product1", "price": "10.0" }, { "product": "Product2", "price": "15.0" } ] 

而不是打印数据,我将它保存到一个mongo分贝。

如果有些数据不能上传,我需要某种安全网。 有些东西可以让我从websocket上传数据到mongo db。

什么是最好的做法呢? 我希望这个问题不是太广泛,我是新来的节点和mongo db。

谢谢!

这是一个如何处理数据并将其保存到Mongo中的例子。 我没有运行mongo服务器,所以你必须检查保存是否正常。 但是原则就在那里。

不知道你的安全网是什么意思,但我join了一个检查,看看数据是否定义,你应该更多的在那里检查你自己的具体情况。

让我知道如果你需要任何具体的帮助。

 SCsocket.on('authenticate', function () { // subscribe to channel 1 var channel = SCsocket.subscribe('channel1'); channel.watch(function (data) { // if there is any data // you should do more specific checks here if (Object.keys(data).length > 0) { // connect to mongo MongoClient.connect(url, function(err, db) { assert.equal(null, err); // insert data insertDocument(data, db, function() { db.close(); // close db once insert }); }); } else { // handle invalid data console.log('data sent is invalid'); console.log(data); } }); }); // insert into mongo var insertDocument = function (data, db, callback) { // save into product db.collection('product').insertOne( // insert data sent from socket cluster data, function (err, result) { assert.equal(err, null); console.log("Inserted successfully into"); console.log(result); // output result from mongo callback(); }); };