我是JS的新手,我无法解决这个问题,所以我希望你能帮助我。 我将简要解释一下情况,我在我的覆盆子上安装了Github上的应用程序Homebridge:https://github.com/nfarina/homebridge
安装成功,所以,到目前为止一切顺利。但后来我为Homebridge应用程序安装了插件eWeLink:https://github.com/gbro115/homebridge-ewelink安装也很顺利,但是在启动时,插件中的index.js似乎存在问题,我得到以下输出:< / p>
[2018-5-31 23:10:37] [eWeLink]共有[0]个附件从本地缓存加载[2018-5-31 23:10:37] [eWeLink]请求 来自eWeLink HTTPS API的设备列表 [https://eu-ota.coolkit.cc:8080] [2018-5-31 23:10:37] Homebridge是 在端口51826上运行。[2018-5-31 23:10:37] [eWeLink] eWeLink HTTPS API报告共注册了[108]个设备 /usr/lib/node_modules/homebridge-ewelink/index.js:98 body.forEach((device)=&gt; {^
TypeError:body.forEach不是函数 /usr/lib/node_modules/homebridge-ewelink/index.js:98:22 at Object.parseBody (/usr/lib/node_modules/homebridge-ewelink/node_modules/request-json/main.js:74:12) 在Request._callback (/usr/lib/node_modules/homebridge-ewelink/node_modules/request-json/main.js:148:26) 在Request.self.callback (/usr/lib/node_modules/homebridge-ewelink/node_modules/request/request.js:186:22) 在emit.ewo(events.js:126:13)的Request.emit(events.js:214:7)at 请求。 (/usr/lib/node_modules/homebridge-ewelink/node_modules/request/request.js:1163:10) 在emitOne(events.js:116:13)的Request.emit(events.js:211:7)at IncomingMessage。 (/usr/lib/node_modules/homebridge-ewelink/node_modules/request/request.js:1085:12)
所以终端告诉我在index.js的第98行有一个错误,这将是脚本的下一部分:
var devicesFromApi = new Map();
var newDevicesToAdd = new Map();
body.forEach((device) => {
platform.apiKey = device.apikey;
devicesFromApi.set(device.deviceid, device);
});
// Now we compare the cached devices against the web list
platform.log("Evaluating if devices need to be removed...");
function checkIfDeviceIsStillRegistered(value, deviceId, map) {
var accessory = platform.accessories.get(deviceId);
if (devicesFromApi.has(deviceId)) {
platform.log('Device [%s] is regeistered with API. Nothing to do.', accessory.displayName);
} else {
platform.log('Device [%s], ID : [%s] was not present in the response from the API. It will be removed.', accessory.displayName, accessory.UUID);
platform.removeAccessory(accessory);
}
}
我在fromEach函数中发现了一些类似的问题,但我仍然无法弄清楚我应该在脚本中改变什么。
希望你能帮助我:)。
答案 0 :(得分:0)
body
不是数组,因此您无法在其上调用.forEach
,您可以尝试将其转换为
Array.from(body).forEach(function (device) { ... }
看看这个可能有用的答案:forEach is not a function error with JavaScript array