Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js IoTubMessage.forEach不是函数吗?_Node.js_Azure_Azure Cosmosdb_Azure Iot Hub - Fatal编程技术网

Node.js IoTubMessage.forEach不是函数吗?

Node.js IoTubMessage.forEach不是函数吗?,node.js,azure,azure-cosmosdb,azure-iot-hub,Node.js,Azure,Azure Cosmosdb,Azure Iot Hub,谁能告诉我如何解析这个问题 我有一个抛出的错误消息,当我创建azure cosmossDB时,我的cosmosDB输出绑定抛出的消息IOTHubMessage.forEach不是一个函数 module.exports = function (context, IoTHubMessages) { context.log(`JavaScript eventhub trigger function called for message array: ${IoTHubMessages}`);

谁能告诉我如何解析这个问题

我有一个抛出的错误消息,当我创建azure cosmossDB时,我的cosmosDB输出绑定抛出的消息IOTHubMessage.forEach不是一个函数

module.exports = function (context, IoTHubMessages) {
    context.log(`JavaScript eventhub trigger function called for message array: ${IoTHubMessages}`);

    var count = 0;
    var totalTemperature = 0.0;
    var totalHumidity = 0.0;
    var deviceId = "*****";

    IoTHubMessages.forEach(message => {
        context.log(`Processed message: ${message}`);
        count++;
        totalTemperature += message.temperature;
        totalHumidity += message.humidity;
        deviceId = message.deviceId;
    });

    var output = {
        "deviceId": deviceId,
        "measurementsCount": count,
        "averageTemperature": totalTemperature / count,
        "averageHumidity": totalHumidity / count
    };

    context.log('Output content: ${output}');
    context.bindings.outputDocument = output;


    context.done();
};

我错过了什么?请协助,谢谢。

您的答案中没有包含该问题,但该问题很可能存在于functions.json文件中。IoTHub的绑定默认情况下一次只处理一条消息。这意味着消息不是数组,而是单个对象。您需要将基数从one更改为many

要更改此设置,请编辑functions.json文件以包含基数属性

{
  "type": "eventHubTrigger",
  "name": "eventHubMessages",
  "direction": "in",
  "eventHubName": "MyEventHub",
  "cardinality": "many",
  "connection": "myEventHubReadConnectionAppSetting"
}
如果在门户中创建了此函数,则可以在函数的集成部分更改绑定的基数:

非常感谢Matthijs,现在我知道将来如果遇到json文件的函数问题。Node js将作为单个实体进行投诉,这意味着如果我的基数是一个,我可能会经常收到此消息,直到我在Integrate选项卡上修改了Json函数文件中的许多内容。