Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.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/9/loops/2.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 创建后从设备JSON生成Azure IoT Hub的连接字符串_Node.js_Azure_Es6 Promise_Azure Iot Hub_Azure Iot Hub Device Management - Fatal编程技术网

Node.js 创建后从设备JSON生成Azure IoT Hub的连接字符串

Node.js 创建后从设备JSON生成Azure IoT Hub的连接字符串,node.js,azure,es6-promise,azure-iot-hub,azure-iot-hub-device-management,Node.js,Azure,Es6 Promise,Azure Iot Hub,Azure Iot Hub Device Management,如何从deviceInfo生成Azure IoT Hub连接字符串,在我使用IoT Hub服务节点API创建新设备后,该字符串是设备信息的JSON对象 下面是我的代码片段。在回调中,注释所在的位置,我试图获取要解析的设备连接字符串,而不是所有设备信息 import iothub from 'azure-iothub'; const myIoTHub = iothub.Registry.fromConnectionString(...); function createDevice(device

如何从
deviceInfo
生成Azure IoT Hub连接字符串,在我使用IoT Hub服务节点API创建新设备后,该字符串是设备信息的JSON对象

下面是我的代码片段。在回调中,注释所在的位置,我试图获取要解析的设备连接字符串,而不是所有设备信息

import iothub from 'azure-iothub';
const myIoTHub = iothub.Registry.fromConnectionString(...);

function createDevice(device) {
  return new Promise((resolve, reject) => {
    myIoTHub.create(device, function (err, deviceInfo, res) {
      if (err) reject(err);
      // deviceInfo ---> connectionString
      resolve(connectionString);
    });
  });
}
我查看了Microsoft网站上的文档,但唯一专门针对连接字符串的文档是。下面是对象定义。我知道我可以自己解析它,但我在文档中也找不到连接字符串的具体定义。根据我的经验,我知道它是一个主机名、一个设备id和一个对称密钥——尽管我希望azure函数能够生成它,以便在连接字符串生成发生变化时将自己与将来的问题隔离开来


任何帮助都将不胜感激。

这是我提出的功能。但是,如果可能的话,我想使用Azure IoT Hub包中的函数

function generateConnectionString(deviceInfo, hub){
  return `HostName=${hub}.azure-devices.net;DeviceId=${deviceInfo.deviceId};SharedAccessKey=${deviceInfo.authentication.symmetricKey.primaryKey}`;
}

据我所知,包中没有为设备生成连接字符串的函数。但是我可以在util中找到格式化连接字符串的方法

   import * as util from 'util';
   var connectionString = util.format('HostName=xxx-lab.azure-devices.net;DeviceId=%s;SharedAccessKey=%s', deviceId, deviceKey);

azure iot device
npm(iot Hub device SDK for Node.js)中有一个函数用于生成设备连接字符串:

import { ConnectionString as DeviceConnectionString } from "azure-iot-device";
const deviceConnectionString = DeviceConnectionString.createWithSharedAccessKey(hostName, device.deviceId, device.authentication.SymmetricKey.primaryKey);

您也可以参考完整代码,了解如何生成设备连接字符串。

谢谢您的回复。很高兴知道我不是唯一一个能够找到生成连接字符串的函数的人。