Подтвердить что ты не робот

Метод Socket.IO "listen()" ожидает экземпляр "http.Server" после перехода в Express 3.0

Я буквально начал изучать Node.js сегодня, и я немного застрял.

Следуя примеру this, я получаю следующую ошибку при попытке выполнить файл js:

Warning: express.createServer() is deprecated, express
applications no longer inherit from http.Server,
please use:

  var express = require("express");
  var app = express();

Socket.IO `listen()` method expects an `http.Server` instance
as its first parameter. Are you migrating from Express 2.x to 3.x?
If so, check out the "Socket.IO compatibility" section at:
https://github.com/visionmedia/express/wiki/Migrating-from-2.x-to-3.x
   info  - socket.io started

Я не знаю, как это исправить. Я был бы признателен за любое направление.

Пожалуйста, помогите.

UPDATE

Ошибка, вызванная измененным кодом Билла:

/home/sisko/NodeJS/nodeSerialServer/serialServer.js:24
var app     =   express()
                ^
ReferenceError: express is not defined
    at Object.<anonymous> (/home/sisko/NodeJS/nodeSerialServer/serialServer.js:24:12)
    at Module._compile (module.js:449:26)
    at Object.Module._extensions..js (module.js:467:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.runMain (module.js:492:10)
    at process.startup.processNextTick.process._tickCallback (node.js:244:9)
4b9b3361

Ответ 1

Было внесено изменение в то, как вы инициализируете express приложения между версиями 2 и 3. Этот пример основан на версии 2, но похоже, что вы установили версию 3. Вам просто нужно изменить пару строк для установки вверх socket.io правильно. Измените эти строки:

var app = require('express').createServer(),
    io = require('socket.io').listen(app),
    scores = {};                                

// listen for new web clients:
app.listen(8080);

:

var express = require('express'),
    app = express()
  , http = require('http')
  , server = http.createServer(app)
  , io = require('socket.io').listen(server);

// listen for new web clients:
server.listen(8080);

Ответ 2

Упрощено до трех строк кода, которые будут:

var server = require('http').createServer(require('express')()),
io = require('socket.io').listen(server);
server.listen(8080);