iothub.Device 不是 Object 的构造函数。<anonymous>

iothub.Device is not a constructor at Object.<anonymous>

对于 NodeJS,我使用的是此处的基本示例文档: https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-node-node-getstarted

但是我得到这个错误:

iothub.Device is not a constructor at Object. (/Users/luis.valencia/Projects/IoTSamples/NodeJSIoTHelloWorld /CreateDeviceIdentity.js:7:14) at Module._compile (module.js:541:32) at Object.Module._extensions..js (module.js:550:10) at Module.load (module.js:458:32) at tryModuleLoad (module.js:417:12) at Function.Module._load (module.js:409:3) at Module.runMain (module.js:575:10) at run (bootstrap_node.js:352:7) at startup (bootstrap_node.js:144:9) at bootstrap_node.js:467:3

我的代码如下:

'use strict';
var iothub = require('azure-iothub');
var connectionString = 'HostName=xyz.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=xyz=';
var registry = iothub.Registry.fromConnectionString(connectionString);
var deviceId = "helloworlddevice";

var device = new iothub.Device(null);
device.deviceId = deviceId;

registry.create(device, function(err, deviceInfo, res) {
  if (err)
    registry.get(device.deviceId, printDeviceInfo); 

  if (deviceInfo)
    printDeviceInfo(err, deviceInfo, res) 
});

function printDeviceInfo(err, deviceInfo, res) {
  if (deviceInfo)
    console.log('Generated device key: ' + deviceInfo.authentication.SymmetricKey.primaryKey);
}

npm 包上有一个错误,在 github 上向 MS 报告后,它已修复,连夜发布,所以我重新安装包,问题就解决了。