我目前正在使用socket.io发送和监听客户端JavaScript文件和Node.js服务器文件之间的事件,但我希望能够发送和监听Node服务器及其模块之间的事件。我的想法是它应该看起来像这样:
节点服务器:
var module1 = require('./module1');
//Some code to launch and run the server
module1.emit('eventToModule');
module1.emit('moduleResponse', function(moduleVariable) {
有没有可能在两个不同的文件中使用Node.js EventEmitter,而不需要创建EventEmitter的子类?
我已经尝试过了:
File1.js
var EventEmitter = require('events').EventEmitter;
var emitter = new EventEmitter();
emitter.emit('eventFromFile1');
File2.js
var EventEmitter = require('events').EventEmitter;
var emitter = new Ev
我有一个用node.js编写的后台进程,它使用如下所示的EventEmitter:
var event = { returnValue: undefined };
eventEmitter.emit('name', event, argument);
return event.returnValue; // Example of doing things with event.returnValue.
活动的另一端:
eventEmitter.on('name', (event, argument) => {
var returnValue = a
有人看到这个错误了吗?我不明白错误的根源。寻找答案是徒劳的。为了给出一些上下文,我通过SVN合并了来自另一个分支的更改,这可能破坏了合并,但我仍然不知道逻辑中出了什么问题。提前谢谢。
zlib.js:166
callback(null, buf);
^
TypeError: object is not a function
at Gzip.onEnd (zlib.js:166:5)
at Gzip.EventEmitter.emit (events.js:117:20)
at _stream_readable.js:910:16
at process._tickCallback (
两样似乎都能用。下面列出的两个e1都是EventEmitter,可以这样使用。
import { EventEmitter } from "events";
let e1 = new EventEmitter();
import events from "events";
let e1 = new events();
我在谷歌上搜索没有找到答案。我还研究了节点文档,发现差异从节点4.x开始( 0.12.x,仍然是import from Events.EventEmitter)。
有人能帮我解释一下这里有什么区别吗?
以下节点片段来自Node.js测试,我想知道为什么实例化对象的一种方法比另一种更受欢迎?
// 1
var events = require('events');
var emitter = new events.EventEmitter();
emitter.on('test', doSomething);
// 2
var net = require('net');
var server = net.createServer();
server.on('connection', doSomething);
// 3
var
我试图从一个EventEmitter发送到另一个EventEmitter,或者找到另一个解决方案。下面的代码不起作用。
多发射器示例
var events = require('events');
var eventEmitterOne = new events.EventEmitter();
var eventEmitterTwo = new events.EventEmitter();
eventEmitterTwo.on('fireEvent', function() {
console.log('event fired');
我一直在跟踪曼努埃尔·泰希拉( Manuel )的Node.js,我偶然发现了这个奇怪的行为,当时我正在浏览事件发射器一章。
作者建议的代码由如下内容组成:
var EventEmitter = require("events").EventEmitter;
var util = require ("util");
var MyClass = function() {};
util.inherits(MyClass, EventEmitter);
var instance = new MyClass();
instance.on("custom"
我是Node.JS新手,我开始阅读关于Node.js事件处理和并发的几个主题。
后面的代码会触发1000次事件,该事件通过递增全局变量来处理。第一位代码成功计数到1000,但第二位甚至没有增加到2。有什么原子性我不知道吗?
我仍然想知道为什么下面的代码提供了一个连贯的输出(它成功地计数到1000而不存在任何并发性):
// Import events module
var events = require('events');
// Event emitter
var eventEmitter = new events.EventEmitter();
var max = 1
在使用node.js对--eval的最新支持时,当我尝试使用require()时,我得到了一个错误(ReferenceError: require is not defined)。
下面是一个失败的例子:
$ node --eval 'require("http");'
undefined:1
^
ReferenceError: require is not defined
at eval at <anonymous> (node.js:762:36)
at eval (native)
at node.js:762:36
我刚从雅虎安装了,但当我访问http://localhost:8000/时,我得到的信息是:
Error: Cannot find module 'jade'
at loadModule (node.js:289:15)
at require (node.js:420:14)
at ServerResponse.render (/usr/local/lib/node/.npm/yeti/0.1.0/dependencies/express/view.js:258:46)
at Object.<anonymous> (/usr/local/lib/node/.npm/
当我在cmd.exe中运行以下内容时(也是在带有和不具有管理权限的ps中);
apm -v我得到以下错误;
internal/child_process.js:274
var err = this._handle.spawn(options);
^
TypeError: Bad argument
at TypeError (native)
at ChildProcess.spawn (internal/child_process.js:274:26)
at exports.spawn (child_process.js:
我是一个新手JavaScripter,对V8引擎内部发生的事情一无所知。
话虽如此,我确实很喜欢我对node.js环境的早期探索,但我发现我一直在使用events.EventEmitter()作为发出全局事件的一种方式,这样我就可以构造程序以适应通知者-观察者模式,类似于我在Objective或Python程序中所写的内容。
我发现自己总是做这样的事情:
var events = require('events');
var eventCenter = new events.EventEmitter();
eventCenter.on('init', fun
我需要为我的Node web应用程序提供持久的MySQL连接。问题是,这种情况每天会发生几次:
Error: Connection lost: The server closed the connection.
at Protocol.end (/var/www/n/node_modules/mysql/lib/protocol/Protocol.js:73:13)
at Socket.onend (stream.js:79:10)
at Socket.EventEmitter.emit (events.js:117:20)
at _stream_readable.js:895:16
at p
我在我的机器上做了一个应用程序,它工作得很好。我把它上传到服务器上,它崩溃了,错误如下:
node.js:116
throw e; // process.nextTick error, or 'error' event on first tick
^
Error: Cannot find module 'xml2js'
at Function._resolveFilename (module.js:289:11)
at Function._load (module.js:241:25)
at require