我正在开发一个web应用程序来控制智能家居设备。我正在使用Bluemix IoT平台设计它,但我有一些无法解决的问题。
我正在读取app.js文件中的一个变量(currentRelay1),它是直接从IoT设备读取的。
var Client = require('ibmiotf');
var appClientConfig = {
"org" : "rmpr4l",
"id" : "dineriot",
"domain": "internetofthings.ibmcloud.com",
"auth-key" : "a-rmps4l-0uegqtl8mec",
"auth-token" : "V8vB!?R3yES7dc@vtj"
};
var appClient = new Client.IotfApplication(appClientConfig);
appClient.connect();
appClient.on("connect", function () {
appClient.subscribeToDeviceEvents();
});
appClient.on("deviceEvent", function (deviceType, deviceId, eventType, format, payload) {
console.log("Device Event from :: "+deviceType+" : "+deviceId+" of event "+eventType+" with payload : "+payload);
var json = JSON.parse(payload);
currentRelay1 = json["C1"] * 1000;
currentRelay2 = json["C2"] * 1000;
});现在,我想分享这个变量,以便在index.html文件中使用它来绘制图表。
我该怎么做呢?
发布于 2017-05-15 14:37:30
由于这是您的服务器端代码,因此您需要将此数据发送到您的页面。或从服务器请求它的页面。不幸的是,这是一个非常大的主题:)
您可以设置一个服务器来响应,如下所示:
server.js // "data“是您的变量
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, { 'Content-Type': 'text/html' });
res.write("data: " + data + '\n\n');
res.end();
}).listen(8000);包含在.html文件中的client.js //
<script>
function handler(e){
if (e.target.readyState == 4 && e.target.status == 200) {
//use "e.target.data" here
}
}
var r = new XMLHttpRequest();
r.open('GET', 'http://localhost:8000');
r.addEventListener(readystatechange, handler);
r.send();
</script>进一步阅读:https://nodejs.org/api/http.html https://www.w3schools.com/xml/xml_http.asp
https://stackoverflow.com/questions/43972007
复制相似问题