Socket.IO错误“listen()”方法需要转移到Express 3.0后的“http.Server”实例

我从字面上开始学习Node.js,我有点卡住了。

遵循这个例子,当我尝试执行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's `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

Bill修改后的代码导致错误:

 /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) 

在版本2和版本3之间初始化express应用的方式发生了变化。此示例基于版本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); 

简化为三行代码将是:

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