#javascript #node.js #ejs
#javascript #node.js #ejs
Вопрос:
У меня есть файл .EJS, и в нем записан следующий код:
<% var sensor_data=0 %>
<% var client = mqtt.connect('mqtt://io.adafruit.com',
{
username: "**********",
password: "**********",
}
)
client.on("connect",function(){
console.log("connected");
}
)
var topic = `${client.options.username}/f/sensor`;
client.subscribe(topic, function(err){
if(!err)
console.log("subscribed");
});
client.on("message",function(topic,message){
var sensor_msg = message.toString();
sensor_data = parseInt(sensor_msg, 10)
console.log(sensor_data); //printing correct value
});
%>
<script>
function updateGauges()
{
gauge1.value = <%= sensor_data %>; //something is wrong here
console.log(<%= sensor_data %>);
}
gauge1 = new RadialGauge({ renderTo: 'gauge1',
width: 250,
height: 250,
units: '[units]',
title: "Sensor 1",
}).draw();
setInterval(updateGauges, 500);
</script>
Я пытаюсь присвоить значение переменной sensor_data(переменной EJS) переменной gauge1.value (переменной JS) в функции updateGauges(), но она всегда присваивает и выводит ноль. Однако оператор console.log(sensor_data) в функции приема сообщений выводит правильное значение.
Я пробовал:
- JSON.stringify
- <%= sensor_data %>
но она по-прежнему не печатает и не присваивает правильное значение в разделе скрипта.
Комментарии:
1. «<%» и «%>» можете ли вы объяснить, что это такое? Я никогда не видел этот корпус backet?
2. Разве они не используются для написания кода EJS?
3. @user12326 Каково значение переменной message до ее преобразования в строку?