Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 侦听器参数必须是函数错误_Javascript_Node.js_Firmata - Fatal编程技术网

Javascript 侦听器参数必须是函数错误

Javascript 侦听器参数必须是函数错误,javascript,node.js,firmata,Javascript,Node.js,Firmata,我使用nodejs作为我的rfid,它连接在我的树莓pi上。我想做的是,当我点击id“6f124628”时,led不会亮起,除非arduino上的另一个针脚高。我正在使用firmata协议进行arduino通信 JS: 功能准备就绪(错误){ 如果(错误){ 控制台日志(err); 返回; } console.log('固件:'+board.Firmware.name+ “-”+board.firmware.version.major+ '.'+板固件版本.version.minor); va

我使用nodejs作为我的rfid,它连接在我的树莓pi上。我想做的是,当我点击id“6f124628”时,led不会亮起,除非arduino上的另一个针脚高。我正在使用firmata协议进行arduino通信

JS:

功能准备就绪(错误){
如果(错误){
控制台日志(err);
返回;
}
console.log('固件:'+board.Firmware.name+
“-”+board.firmware.version.major+
'.'+板固件版本.version.minor);
var ledOn=真;
board.pinMode(LED引脚、board.MODES.OUTPUT);
rc522(功能(rfidSerialNumber){
console.log(rfidSerialNumber);
如果(rfidSerialNumber==“216264a9”){
onjie.writeSync(1);
}
数据=电路板数字读取(ledPin);
如果(rfidSerialNumber==“6f124628”和&data==“board.HIGH”){
LED1.writeSync(1);
返回;
}

});
问题在于方法
createServer

您必须更改方法
处理程序的初始化

尝试将
处理程序
声明更改为:

var handler = function(req, res) {
  fs.readFile(__dirname + '/firmata.html',
  function (err, data) {
    if (err) {
      res.writeHead(500);
      return res.end('Error loading firmata.html');
    }

    res.writeHead(200);
    res.end(data);
  });
}  
现在,您可以通过以下方式声明服务器:

var http = require('http').createServer(handler);

用完整错误的图片编辑这是文件
main.js
?是的,它是main.js你能使用
createServer
功能吗?@Onjieee我想错误不在那里,在
main listener
编辑的帖子中仍然显示相同的错误。我想问题在于如何使用
data=board.digitalRead(ledPin)
因为当我移除它和
数据==“board.HIGH”
条件时,问题消失了,但我需要代码中的条件。