2017-07-25 65 views
0

我已經在IOT Hub觸發的Azure應用中創建了一個Azure功能,並將接收到的消息保存在SQL數據庫中。但它在接收多條消息時無法處理。我的功能是低音。如何在Azure函數JavaScript中保存多條消息?

module.exports = function (context, iotHubMessage) { 

for (var i = 0; i < iotHubMessage.length; i++) { 

    var iotMsgObj = iotHubMessage[i]; 
    context.log('Message : ' + JSON.stringify(iotMsgObj)); 

    context.bindings.paraSession = JSON.stringify(iotMsgObj); //to save data in SQL database 

    context.done();   // will save first message only 
} 

// context.done();  // will save last message only 

}; 

iotHubMessage轂具有多個JSON對象,這將節省醚第一或最後一個消息從iotHubMessage將在數據庫中的表存儲。

請指教我做錯了什麼?

回答

0

我還沒有嘗試與SQL結合,但返回一個數組適用於其他類型的(例如,隊列):

module.exports = function (context, iotHubMessage) { 

    context.bindings.paraSession = []; 
    for (var i = 0; i < iotHubMessage.length; i++) { 
    var iotMsgObj = iotHubMessage[i]; 
    context.bindings.paraSession.push(JSON.stringify(iotMsgObj)); 
    } 

    context.done(); 
}; 
+0

不適用於SQL –

0

米哈伊爾是正確的,如果你在存儲天青表存儲的數據。但是當你使用SQL數據庫時,你需要下面的代碼片段。

module.exports = function (context, iotHubMessage) { 

var tempArr = []; 

for (var i = 0; i < iotHubMessage.length; i++) { 
    var iotMsgObj = iotHubMessage[i]; 
    tempArr.push(iotMsgObj); 
} 

context.bindings.paraSession = tempArr; 
context.done(); 
}; 
相關問題