2011-12-29 2 views
5

enter image description hereОшибка process.nextTick в node.js?

Я получаю process.nextTick ошибку на этом самом базовом примере node.js.

Может ли кто-нибудь выяснить, как это сделать? Неужели узел не может начать прослушивание на порту 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

не правда ли? Я скопировал ту же самую команду из речи Райана .. –

+0

Node.js меняется так быстро, что вы не можете полагаться на материал более чем на несколько месяцев. Не уверен, когда была презентация, но так вы делаете это в узле 0.6. – sczizzo

+0

Большое спасибо .. он работает. Думаю, презентация была очень старой. –

10

Это опечатка в слайде Райана! : -0

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

+1 Да, это тоже работает. – sczizzo

1

Для кого-то, кто может наткнуться здесь ищет почему узел блюет эту ошибку, когда они пытаются выдать brunch watch --server, проверьте и убедитесь, что у вас нет каких-либо других серверов, работающих с использованием того же порта (т.е. в другой оболочке).

Смежные вопросы