Node.js http.createServer throws TypeError: listener must be a function

2.2k Views Asked by At

index.js:

var koa = require('koa')
  , Primus = require('primus.io')
  , http = require('http')
  , app = koa()
  , server = http.createServer(app);

var primus = new Primus(server, { transformer: 'websockets', parser: 'JSON' });

primus.on('connection', function (spark) {
  spark.send('news', { hello: 'world' });
  spark.on('my other event', function (data) {
    console.log(data);
  });
});

app.get('/', function (req, res) {
  res.sendfile(__dirname + '/index.html');
});

server.listen(8080);
console.log('8080');

run: node --harmony index

and err: throw TypeError('listener must be a function');

2

There are 2 best solutions below

1
On

You need to change your code to do this:

server = http.createServer(app.callback())

0
On

Try: add a star '*'

app.get('/',function*(next){})