2011-12-29 105 views
5

enter image description herenode.js中的process.nextTick错误?

我得到node.js这个非常基本的例子process.nextTick错误。

有人可以搞清楚吗? 节点无法启动端口8000监听?

# cat nodejs.js 
net = require("net"); 
s = net.createServer(); 

net.on('connection', function (c) { 
c.end('hello'); 
}); 

s.listen(8000); 

# node nodejs.js 

node.js:201 
    throw e; // process.nextTick error, or 'error' event on first tick 
     ^
TypeError: Object #<Object> has no method 'on' 
at Object.<anonymous> (/home/ec2-user/praveen/nodejs.js:4:5) 
at Module._compile (module.js:432:26) 
at Object..js (module.js:450:10) 
at Module.load (module.js:351:31) 
at Function._load (module.js:310:12) 
at Array.0 (module.js:470:10) 
at EventEmitter._tickCallback (node.js:192:40) 

回答

4

看来你想捕捉库(net)的事件,但你应该看the connectionListener argument to createServer。试试这个:

var net = require("net"); 

var server = net.createServer(function (c) { 
    c.end('Hello!'); // Implicitly fired on 'connection' 
}); 

server.listen(8000); 
+0

是吗?我已经从瑞安的演讲中复制了完全相同的命令.. – 2011-12-29 21:51:00

+0

Node.js变化的速度非常快,以至于不能依赖超过几个月的材料。不知道该演示文稿是从何时发布的,但这是您在Node 0.6中的做法。 – sczizzo 2011-12-29 21:53:14

+0

非常感谢..它的工作原理。我想演示文稿很老了。 – 2011-12-29 23:32:22

10

这是Ryan滑动错字! :-0

s/net.on/s.on/ 
+0

+1是的,这也适用。 – sczizzo 2011-12-30 05:07:15

1

对于其他人,当他们尝试发出brunch watch --server,检查并确保你没有使用相同的端口上运行任何其他服务器谁可能绊倒在这里寻找原因节点pukes这个错误(即在另一个壳中)。