2012-12-27 41 views
1

我写了一个使用dnode的TCP服务器。基本上,一切工作正常。如何在Node.js TCP服务器中追踪ECONNREFUSED?

现在我还创建了一些单元测试,其中一个失败,其中一个失败,ECONNREFUSED

有什么奇怪的是,当在单元测试之外运行

  • 代码被测试的伟大工程,在应用程序内,
  • 代码被测试的作品,如果我失败之前注释掉测试测试。

显然,两次测试之间似乎存在相互依存关系。两者都单独工作,但不能与对方一起工作。

的问题是,我得到一个非常无用的错误消息:

Error: connect ECONNREFUSED 
    at errnoException (net.js:768:11) 
    at Object.afterConnect [as oncomplete] (net.js:759:19) 

很高兴地看到,这是一个ECONNREFUSED错误,但我该如何找出是什么原因造成的问题?

由于有很多谁合并匿名函数的回调是不容易弄清楚哪些行引起问题:-(。

任何想法/提示吗?

+3

'ECONNREFUSED'通常意味着你正在尝试连接的进程实际上并没有运行,也许你启动了服务器并没有等待足够长的时间才能开始运行?服务器无法在您连接的端口上收听,因为这一点端口已被使用(可能由同一服务器的先前实例)。 –

+0

测试是否创建服务器的新实例?还是两个测试都使用同一个服务器的实例,它们仍然在其中运行? –

+0

每个测试都会创建一个新的服务器实例,将其绑定到端口3000并在完成之前关闭服务器。这是一个完美的方式(甚至有一个测试;-))。关于没有足够长时间的问题:我正在使用'listen'函数调用的回调函数,因此服务器应该启动并运行。 –

回答

2

我要解决它我自己,看看上面的评论

+0

我还没有准备好! –