运行 server.js 时 NodeJS 需要错误

NodeJS require error when running the server.js

我运行在运行宁node server.js时出现如下错误:

为什么 require 会抛出错误?我正在使用 Socket.IO,我在 server.js 中的代码如下所示:

var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);
var redis = require('redis');

server.listen(8890);
io.on('connection', function (socket) {

  console.log("new client connected");
  var redisClient = redis.createClient();
  redisClient.subscribe('message');

  redisClient.on("message", function(channel, message) {
    console.log("mew message in queue "+ message + "channel");
    socket.emit(channel, message);
  });

  socket.on('disconnect', function() {
    redisClient.quit();
  });

});

您的问题是您使用的是 Socket.io v0.8.1。您可以通过 至少安装 v1.0.0 来解决此问题。如果您没有 requirements/restraints 从以前的版本升级,我推荐最新的稳定版本。

require('io')(srv) 签名已在 v1.0.0 中发布。 Plus v0.8.1 可追溯到 2011 年;这是一段很长的时间,Node、Express 和 Socket.io.

发生了很大变化

这里有更多关于从 v0.9 及以下版本过渡到 v1.0.0+ 的信息:http://socket.io/docs/migrating-from-0-9/

在这里您可以找到 Socket.io 的版本历史记录:https://github.com/socketio/socket.io/blob/master/History.md