Tag: javascript events

Node.js – 空文件写入,但为什么?

TL; DR为什么写第一个文件,但是剩下的文件是空的? 我在Node.js中有一个循环的文件string的数组列表。 每个string都表示其各自目录中的不同文件。 该数组包含三个需要创build三个独立文件的值。 第一个文件被创build并写入后,第二个和第三个文件被创build,但保持为空。 下面是代码的简短版本。 任何帮助深表感谢。 for(i in file_tree) { fp = fs.createWriteStream(file_tree[i]); for(i in data) { fp.write(data[i]+'\n', function (err) { if(error) throw err;}); } } // end for loop – file_tree ======解决scheme===== file_tree = [ pn+ '/theme/file1', pn+ '/theme/file2', pn+ '/theme/file3', ]; for(i in file_tree) { file_name = file_tree[i]; fp = fs.createWriteStream(file_name); […]

Node.js中唯一的EventListener ID

我目前正在使用以下创buildeventListeners: client.on('data', function(data){ // Lots of other functions etc.. }); 我特别想知道的是,是否有可能通过一个唯一的ID来识别这个特定的听众,以便我可以单独参考它? 这个eventListener可能有多个实例在任何时候打开,我希望能够删除它们的基础上收到一个特定的数据事件,将引用这个ID。 现在的问题是,我不知道如何识别单个事件监听器。 谢谢!

NodeJS了解事件队列

我的理解是,NodeJS会一直运行,直到所有的事件从事件队列中消失,然后它将退出。 在各种场合,我写了一个脚本,使用第三方模块,它做我想做的事情,但不退出。 我认为这是因为一些其他的第三方模块在事件队列中有东西。 我能做些什么来观察排队,鼓励排队,甚至确定谁还有事情要做(也许得到足够的信息知道如果我处理,退出,不会有任何伤害) 感谢您的build议。

Node.js等待多个事件

如何以一种干净的方式等待多个事件被发射? 就像是: event.on(['db:mongo:ready', 'db:redis:ready', 'db:rethinkdb:ready'], function() { server.listen() });

Socket.IO – 如何将事件发送给房间中的每个人,包括发件人?

在我的Socket.Io / Node.Js / Express应用程序中 – 在添加聊天室之前,我曾经为每个人(包括发件人)发出这样的事件: io.emit('chat message', msg); 现在我添加了房间,并尝试使用相同的东西 socket.broadcast.to(socket.room).emit('chat message', msg); 要么 socket.to(socket.room).emit('chat message', msg); 但是两者都只将消息发送给接收者, 而不发送给发送者。 我该怎么做才能让这个消息也发送给在聊天室里的发件人呢? 谢谢!

NodeJS中的事件在setInterval中发出,但不是没有setInterval

我对JavaScript和NodeJS非常陌生,我只是想了解NodeJS中的发射器模式。 当我尝试每秒发出一个tick事件时,使用setInterval函数,程序似乎工作正常: – var util = require('util'), EventEmitter = require('events').EventEmitter; var Ticker = function() { var self = this; setInterval(function() { self.emit('tick'); }, 1000); }; util.inherits(Ticker, EventEmitter) var ticker = new Ticker(); ticker.on('tick', function() { console.log('TICK'); }); 但是,当我尝试发出一个事件,而不使用setInterval方法,我的事件没有被调用: – var util = require('util'), EventEmitter = require('events').EventEmitter; var Ticker = function() { var self = this; […]

为什么Nodejs的callback()不能访问外部callback范围的variables?

我对NodeJS和JavaScript一般都比较陌生。 这是我的脚本: var fs = require('fs') ; var temp = "???"; var test = function (){ fs.readdir("./", function(err,result){ temp = result; // i change the temp's value console.log("inter result ….."+temp); // temp's value changed setTimeout(pr,1000,"inter setTimeout: "+temp); // temp's value changed }); } var pr = function (str){ console.log("Print str: "+ str); } ; test(); […]

使用承诺而不是事件callback

我有以下的代码,这个所有的代码是在指定的函数myFunc ,我需要的所有function将完成(myFunc),即当文件成功提取/或不返回一些状态(成功/错误) var myFunc = () => { var DecompressZip = require('decompress-zip'); var unzipper = new DecompressZip(filename) unzipper.on('error', function (err) { console.log('Caught an error'); }); unzipper.on('extract', function (log) { console.log('Finished extracting'); }); unzipper.on('progress', function (fileIndex, fileCount) { console.log('Extracted file ' + (fileIndex + 1) + ' of ' + fileCount); }); unzipper.extract({ path: 'some/path', filter: […]

无法在节点js中安装依赖关系

即时学习节点js和我只是做了一个教程,我试图创build一个聊天,一切都很好,直到我被困在教程的一个步骤。 我决定下载的教程来源运行serven,看看有什么问题我有一个文件夹名为curso在这个文件夹中我有两个文件夹聊天nodenodejs和其他是sourcechatjs聊天nodejs我有packasge.json和服务器js ,我跑了npminstall,一切都很好。 但是,当我downloades聊天源,我把它放在sourcechatjs我打开了temirnal,并运行npm安装,并得到了这个错误。 jhonnatans-MacBook-Pro:chat jhonnatan$ npm install npm ERR! install Couldn't read dependencies npm ERR! Failed to parse json npm ERR! Unexpected token / npm ERR! File: /Users/jhonnatan/Documents/Cursoseccion2/clasenodejs/chat/package.json npm ERR! Failed to parse package.json data. npm ERR! package.json must be actual JSON, not just JavaScript. npm ERR! npm ERR! This is not a bug […]

node.js能够从URL读取吗?

我想要实现的是创build脚本,它将从URL读取,然后使用这些数据做一些操作。 在例子中。 这个脚本每5分钟运行一次,从某个地方加载页面,检查是否有改变,如果有什么改变(有一个小的特定的变化,我实际上会寻找,但没关系,因为这个想法保持同样),它会通过电子邮件发送给我一个警报。 问题是。 Node.js可以处理吗? 我可以用ruby创build这个脚本,或者甚至是shell脚本,每隔N分钟从服务器上的crontab运行; 但是我想尝试一下Node.js,这听起来像我有一个很好的“宠物项目”来尝试它。