linux - Raspberry PI Node EventEmitter 内存泄漏

标签 linux node.js

我在 Raspberry PI 上使用 johnny-five Node 模块,通过以下脚本驱动机器人上的几个伺服系统

var five = require('johnny-five'), board, servo, led;

board = new five.Board();

board.on('ready', function(){
        servo = new five.Servo({pin: 9, range:[0,180]});

        // Allow direct commandline access
        board.repl.inject({s: servo});
});

在 Node 为 0.10.29-1 的 Raspberry PI 上运行此代码时出现以下错误

 1(node) warning: possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit.
 Trace
     at process.EventEmitter.addListener (events.js:160:15)
     at process.on.process.addListener (node.js:768:26)
     at Board.broadcast (/home/pi/sonny/node_modules/johnny-five/lib/board.js:375:15)
     at Board.<anonymous> (/home/pi/sonny/node_modules/johnny-five/lib/board.js:154:18)
     at SerialPort.<anonymous> (/home/pi/sonny/node_modules/johnny-five/node_modules/firmata/lib/firmata.js:418:13)
     at SerialPort.EventEmitter.emit (events.js:95:17)
     at /home/pi/sonny/node_modules/johnny-five/node_modules/serialport/serialport.js:230:16

 Need to setMaxListeners somewhere in the code.

但是,如果我在我的笔记本(Linux Mint 14 + Node 0.10.20)上运行这段代码,它工作正常。

有没有办法在 Raspberry PI(运行 raspbian)上全局设置 MaxListeners?

如果没有,我该如何将 setMaxListeners 添加到我的代码中?

最佳答案

这原来是树莓派的电源问题。一旦我将电机置于单独的电源上但具有公共(public)接地,一切就开始工作了。

关于linux - Raspberry PI Node EventEmitter 内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24980975/

相关文章:

c++ - Linux下的MFC头文件g++ : expected ‘{’ before ‘<’ token

linux - 在awk中使用外部变量传递给bash中的ssh

linux - 如何以编程方式获取 syscall.Mount() 的文件系统类型

javascript - 为什么我在我的页面中看不到不同的 li 标记?

javascript - 将 C++ 虚拟方法绑定(bind)到具有覆盖功能的 js

python - 从 Python 脚本运行 .sh 文件?

c++ - 访问 ELF 中的特定部分

node.js - expressja 使用 xhr 或 fetch 发出 http 请求

html - 无法在 style.css (Node.js) 中设置主体样式

mysql - 如何在 Sequelize 和 Mysql 中编写此查询