Articles of 监听器

鼓舞听众

我是一个巨大的承诺链,但是我意识到,其中一个函数返回一个对象,具有监听器,并响应像callback object.on('data', function(err, data) { //do something }); object.on('exit', function(err, data) { //do something }); 我想知道是否有办法使用承诺来实现这一点,并把它们变成可靠的。 有没有其他select重写我的整个承诺链使用callback?

NodeJS Redis监听器

是否有可能在nodejs中侦听来自redis的更改的值事件? 情况:我有一个NodeJS应用程序,它显示来自另一个应用程序(同一台服务器上的原生应用程序,让我们调用它,让我们调用节点应用程序栏)的实时数据。 Foo将机器状态保存在redis键“状态”中。 栏注册并显示它。 你怎么能抓住这个事件? 编辑 Pierres解决scheme正常工作获取键,但我如何检索值? 我试过这样,但是一个parseError发生: var redis = require("redis"); var client_redis = redis.createClient(); client_redis.config('set', 'notify-keyspace-events', 'KEA'); client_redis.subscribe('__keyevent@0__:set'); client_redis.on('message', function(channel, key) { client_redis.get(key, function(error, result) { if (error) console.log(error); else console.log(result); }); }); 错误 $ { ReplyError> at parseError (/home/pi/Website/node_modules/redis-parser/lib/parser.js:181:12) -bash: syntax error near unexpected token `(' 编辑#2 看起来像client_redis.subscribe('…')阻止客户端读取值到相应的键。 我添加了第二个读取值的客户端。 工作示例: var redis […]

Node.js事件监听器被阻止?

使用以下代码,我注册了一个node.js事件侦听器,该侦听器正在等待来自通过名为zmqevent的全局nodejs EventEmitter转发的zeromq连接的响应。 global.zmqevent.removeAllListeners(req.user._id) global.zmqevent.on(req.user._id, function (msg, status) { console.log('event triggered'); }); global.zmq_controller_pub.send(recipient + " " + String(req.user._id) + " " + "getReportSingle"); console.log("1"); console.log("1"); console.log("1"); console.log("1"); console.log("1"); console.log("1"); console.log("1"); console.log("1"); 基本上事件队列的作品。 zmq_controller_pub.send将请求发送到我的外部脚本,响应到达node.js,发出一个node.js事件,它触发上面定义的事件侦听器。 我怎样才能让事件监听器在我的脚本结尾处中断console.log()链? 电stream输出如下所示: 1 1 1 1 1 1 1 1 event triggered 基本上我想等待来自我的zeromq连接的响应2秒,并且如果没有响应到达,则激活另外的“离线”结果。 但是即使这个简单的例子还没有起作用,事件只是在我的脚本的最后才被解雇。 你有好主意吗? 显然必须有一个愚蠢的错误…

使用下载pipe理器取消下载时,Nodejs内存泄漏

我使用Expressjs 3和Nodejs 0.10创build了一个简单的文件下载器 function download(req, res, filepath, filename){ res.header('Content-Type', 'application/force-download'); res.header('Content-Type', 'application/octet-stream'); res.attachment(filename); res.download(filepath, filename); } 一切正常,但是当我使用下载pipe理器(例如Internet Download Manager)testing应用程序时,当我放弃或取消下载(在下载之前或下载期间)时,会发出警告: Trace at Socket.EventEmitter.addListener (events.js:160:15) at Socket.Readable.on (_stream_readable.js:653:33) at Socket.EventEmitter.once (events.js:179:8) at TCP.onread (net.js:512:26) (node) warning: <b>possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit.</b> 如何在中止文件下载后删除监听器?

Node.js中的MongoDb监听器

我想根据条件来侦听MongoDb集合中的新logging,并通过Socket.Io将它们发送给客户端 正如我所看到的,应该是这样的: var lastTime = Date.now(); while(true) { getRecordsLaterThan(lastTime, function(results) { if (results) { for (let result of results) { lastTime = result.created_on; // send result via Socket.Io } } }); // sleep(200 ms) } 我对Node和JS很新,有时候很难理解它的执行stream程。 在这种情况下,无法弄清楚如何在每次迭代之后使循环hibernate。 另外我也怀疑,也许应该用完全不同的方式来完成Node。

Node.js:听众的麻烦

我在Node.js中开发了我的第一个应用程序,我觉得我听不懂如何工作,因为我写的例子并没有显示我以为它会显示什么。 我想使用一个模块(msfnode)这是一个metasploit RPC客户端,所以它通过websockets连接。 我做了一个类,构造函数有这样的代码: this.clientmsf = new MetasploitClient({ login : options.login || 'myLogin', password : options.password || 'myPassword' }); this.clientmsf.on('connected',function(err,token) { if (err) throw err; }); 所以我想我可以在该类的其他function中使用对象“clientmsf”,并显示错误:error_message:“无效的身份validation令牌”。 这是代码: this.clientmsf.exec(['console.create'], function(err,r){ consoleID = r.id; console.log(r); }); 我想我有这个错误,因为我不知道node.js的所有概念,所以如果有人帮助我,我将非常感激。 非常感谢你。 PD。 这是msfnode库的一个例子: var metasploitClient = require('metasploitJSClient'); var onConnect = function(err,token) { if (err) { console.log(err.error_message); process.exit(0); } metasploitVersion(); […]

如果侦听器尚未添加,并且侦听器处理程序是匿名函数,则在nodeJS中添加侦听器

有没有办法来检查一个侦听器是否已经存在的node.js中的对象? 我想要实现以下场景: 获取数据库的对象 做一些操作 添加监听器,如错误,结果,stream失等,如果相同的监听器尚未添加[假设对于所有的操作监听器操作是相同的] 我想优化添加侦听器的方式,如果我们尝试添加一个现有的侦听器,新的侦听器将不会被添加。 节点文档说:“ 不检查是否已经添加了侦听器。多个调用传递相同的eventName和listener的组合将导致添加和调用多个侦听器。 有没有办法解决它? [编辑] – 添加一些示例代码 connpool.getConnection(function(err, connection) { var querystr = "Some valid SQL query"; connection.execute(querystr, data, function(err, rows) { if (err) { console.error(err); } connection.on('error', function(err){onErr(err,connection);}); do some stuff cleanup(connection); }); }) var onErr = function(err, connection) { console.error({"Error message"}); connection.release(); cleanup(connection); }; var cleanup = function(conn) […]

addListener在node.js中做什么?

我想了解node.js中addListener的用途。 有人可以解释一下吗? 谢谢! 一个简单的例子是: var tcp = require('tcp'); var server = tcp.createServer(function (socket) { socket.setEncoding("utf8"); socket.addListener("connect", function () { socket.write("hello\r\n"); }); socket.addListener("data", function (data) { socket.write(data); }); socket.addListener("end", function () { socket.write("goodbye\r\n"); socket.end(); }); }); server.listen(7000, "localhost");