0
我使用Node.js和Johnny-Five以及Arduino Uno微控制器。我的目标是在按下连接到Arduino的按钮时,网页将显示一个条形的按下次数。Node.js和Johnny-Five“文档未定义”错误
在控制台我得到一个错误,当我按下,说:“文件没有定义”,并引用我的变量是应该改变CSS样式的按钮:
var bar1 = document.getElementById('bar1');
不知道这是为什么给人一种错误。有什么想法吗?以下是我的javascript:
var five = require("johnny-five"),
bumper, led, counter, toggleState;
toggleState = false;
five.Board().on("ready", function() {
bumper = new five.Button(7);
led = new five.Led(13);
counter = 200;
bumper.on("hit", function() {
led.on();
console.log("Button has been pressed");
counter += 10; //add 10 everytime the button is pressed
console.log(counter);
toggleState = true;
console.log("on");
//function increaseBarSize() {
if(toggleState == true) {
var bar1 = document.getElementById('bar1');
bar1.style.width = counter;
console.log(bar1);
}
}).on("release", function() {
led.off();
console.log("off");
});
});
你想在nodejs文件里面运行DOM代码吗? DOM代码需要在网页(在浏览器中)的脚本标记中运行,而不是在nodejs程序中运行。看起来,也许你不太了解前端代码和后端代码之间的区别。 – jfriend00 2014-11-21 04:37:48
我对JavaScript和编程一般都比较陌生 - 刚开始几个月前,所以它是学习过程的一部分。操纵基于Arduino传感器输入的DOM是不可能完成的任务吗?我已收到另一个建议,以使用Socket.io来实现此功能。这是可行的吗? – deevolution 2014-11-22 04:46:57
你需要了解的第一件事是一个网页有一个前端部分,它是在浏览器中运行的HTML和javascript以及在你的服务器上运行的后端部分(我假设它是nodejs,可能正在运行在你的Arduino设备上)。这些是在不同地方运行的两个完全独立的代码片段。服务器创建一个传送到浏览器的网页,然后网页在浏览器中运行。 DOM仅在浏览器中使用。您不要在nodejs或Arduino中操作DOM。您只能从网页中的JavaScript处理DOM。 – jfriend00 2014-11-22 05:57:47