node.js - 对象#<object>没有方法&#39; on&#39;?</object>

时间:2014-07-18 02:09:18

标签: node.js methods eventemitter

我是node.js的新手。 我正试图休息EventEmitter样本。

以下是我的示例代码。

var server = require('http'); //var emitter = require('events');

server.createServer(function (req, res) {
  res.writeHead(200, {
    'Content-Type': 'text/plain'
  });

  setTimeout(function () {
    res.end('World\n');
  }, 2000);

  res.write('Hello ');
}).listen(3000, 'localhost');
console.log('Server(port : 3000) is started.');

server.on('connection', function (stream) {
  console.log('Now server is connected.');
});

server.once('connection', function () {
  console.log('The first connection.');
});

var callback = function (stream) {
  console.log('connected...This is callback function.');
};

server.on('connection', callback);
server.removeListener('connection', callback);

我制作了这样的代码,因为我的书说我们可以通过'on'方法添加一个事件。但是,当我运行此代码时,它会在下面显示错误消息。

TypeError: Object #<Object> has no method 'on'
    at Object.<anonymous> (/Users/juneyoungoh/Documents/eventEmiiter.js:16:8)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)
    at startup (node.js:119:16)
    at node.js:902:3

我不知道在哪里可以找到这种'on'方法。

感谢您分享我的问题

祝你有美好的一天! :d

1 个答案:

答案 0 :(得分:1)

require('http');返回http模块,而不是您的服务器;

修正:

var http = require('http');

var server = http.createServer(  . . . 

其余的工作完美。