我是JS的新手,我无法解决这个问题,所以我希望你能帮助我。 我将简要解释情况是什么,我在我的覆盆子上安装了来自Github的应用程序Homebridge:https://github.com/nfarina/homebridge
安装成功,到目前为止一切顺利。但后来我为 Homebridge 应用程序安装了插件 eWeLink:https://github.com/gbro115/homebridge-ewelink 安装也很好,但在启动时索引中似乎有一个问题.js从插件中,我得到以下输出:
[2018-5-31 23:10:37] [易微联] 从本地缓存加载共 [0] 个配件 [2018-5-31 23:10:37] [易微链接] 请求中 来自易微联HTTPS API的设备列表,网址为: [https://eu-ota.coolkit.cc:8080][2018-5-31 23:10:37]家桥是 在端口 51826 上运行。[2018-5-31 23:10:37][易微联] 易微联HTTPS API 报告总共有 [108] 个设备注册/usr/lib/node_modules/homebridge-ewelink/index.js:98 body.forEach((device( => { ^
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( 在请求.self.callback (/usr/lib/node_modules/homebridge-ewelink/node_modules/request/request.js:186:22( at emitTwo (events.js:126:13( at Request.emit (events.js:214:7( at 请求。 (/usr/lib/node_modules/homebridge-ewelink/node_modules/request/request.js:1163:10( at emitOne (events.js:116:13( at Request.emit (events.js:211:7( at 传入消息。 (/usr/lib/node_modules/homebridge-ewelink/node_modules/request/request.js:1085:12(
所以终端告诉我索引.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 函数中发现了一些类似的问题,但我似乎仍然无法弄清楚我应该在脚本中更改什么。
希望你能帮我:)
body
不是数组,因此您无法在其上调用.forEach
,您可以尝试像
Array.from(body).forEach(function (device) { ... }
看看这个可能会有所帮助的答案:forEach 不是 JavaScript 数组的函数错误