Моя сторона ejs (веб-страница) обновляет неправильные переменные каждый раз, когда я обновляю страницу, но каждая переменная имеет свое имя.Я не могу понять, что не так.
Мой index.js получает сообщения от esp8266, используя MQTT, и затем я передаю это ejs.
index.js
var topicTemp = "FromESPtoWeb/temp";
var topicMessagemoisture = "FromESPtoWeb/moisture";
var content = { doorMsg: "Door Closed" ,
windowMsg: "Window Closed",
tempMsg : "",
moistureMsg : "" ,
motionMsg: "Motion" };
client.on('connect', function () {
//Subscribe to topic "FromESPtoWeb/temp"
client.subscribe(topicTemp, function (err) {
if (err) {
alert("something went wrong on subscribe to message");
}
client.on('message', function (topicTemp, temp) {
console.log(temp.toString());
content.tempMsg = temp.toString();
});
})
//Subscribe to topic "FromESPtoWeb/moisture"
client.subscribe(topicMessagemoisture, function (err) {
if (err) {
alert("something went wrong on subscribe to message");
}
client.on('message', function (topicMoisture, moisture) {
console.log("new message on " + topicMoisture + " - " +
moisture.toString());
content.moistureMsg = moisture.toString();
});
})
})
/* GET home page. */
router.get('/', function(req, res) {
res.render('index', { content : content } );
});
index.ejs
<h4> <%= content.moistureMsg %> </h4>
<h4> <%= content.motionMsg %> </h4>
<h4> <%= content.windowMsg %> </h4>
<h4> <%= content.doorMsg %> </h4>
content.moistureMsg , иногда показывающий, что предполагается для контента.windowMsg или content.doorMsg показывает значение, которое должно быть content.motionMsg .Полный беспорядок ...