0

我的 /js 文件夹中有一个文件 dmreboot_service.js。当我使用 node /js/dmreboot_service.js 运行此文件时,它成功地调用了 Azure 中的直接方法。

我需要能够通过我的网络应用程序单击按钮来执行此功能或文件。

我尝试使用以下方法将脚本加载到我的 html 头部:

<script src="js/dmreboot_service.js"></script>

我在外部文件中放了一个警报。如果我把这个警报放在文件的顶部它可以工作,但在底部它会失败,所以文件的内容没有加载。

dmreboot_service.js 的内容是:

'use strict';

var Registry = require('azure-iothub').Registry;
var Client = require('azure-iothub').Client;


var connectionString ="HostName=XxxxxxxX.azure-devices.net;SharedAccessKeyName=service;SharedAccessKey=XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxX=";
var registry = Registry.fromConnectionString(connectionString);
var client = Client.fromConnectionString(connectionString);
var deviceToReboot = 'Runner';

var startRebootDevice = function (twin) {

  var methodName = "reboot";

  var methodParams = {
      methodName: methodName,
      payload: null,
      timeoutInSeconds: 30
  };

  client.invokeDeviceMethod(deviceToReboot, methodParams, function(err, result) {
      if (err) {
          console.error("Direct method error: "+err.message);
      } else {
          console.log("Successfully invoked the device to reboot.");  
      }
  });
};

var queryTwinLastReboot = function() {

  registry.getTwin(deviceToReboot, function(err, twin){

      if (twin.properties.reported.iothubDM != null)
      {
          if (err) {
              console.error('Could not query twins: ' + err.varructor.name + ': ' + err.message);
          } else {
              var lastRebootTime = twin.properties.reported.iothubDM.reboot.lastReboot;
              console.log('Last reboot time: ' + JSON.stringify(lastRebootTime, null, 2));
          }
      } else 
          console.log('Waiting for device to report last reboot time.');
  });
};

startRebootDevice();
setInterval(queryTwinLastReboot, 2000);

alert('dmreboot included!');

我还尝试在我的 html 头部创建一个函数,其中包含 dmreboot_service.js 的全部内容,但是尽管成功调用了该函数,但代码并没有执行。

这是我需要开始工作的项目的最后一部分。我对此很陌生,这让我发疯了!非常感谢任何建议。

4

1 回答 1

0

我通常用这样的javascript处理HTML中的点击;

const doSomething = document.querySelector('.whateverclassnameyouchoose').addEventListener('click',onClick);

function onClick(e){
what ever you want the function to do
}

希望能帮助到你 :)

于 2019-11-20T22:58:35.567 回答