1

我已成功安装 node.js。我已经创建了文件

var http = require('http');
var url=require('url');
var fs=require('fs');
var io = require('socket.io');

http.createServer(function (req, res) {

fs.readFile('/var/www/nodeJS/client.html' ,
function ( err, data ) {
 if ( err ) {
  console.log( err );
  res.writeHead(500);
  return res.end( 'Error loading client.html' );
 }
 res.writeHead( 200 );
 res.end( data );
});

}).listen(8124, '127.0.0.1');

io.listen(http);

io.sockets.on('connection', function (socket) {
  socket.emit('news', { hello: 'world' });
  socket.on('my other event', function (data) {
  console.log(data);
});
});

每当我使用 io 对象时都会发生错误。没有 io 它工作正常。

Error: Cannot find module 'zeparser'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/var/www/nodeJS/node_modules/socket.io/node_modules/socket.io-client/node_modules/active-x-obfuscator/index.js:1:78)
    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 Module.require (module.js:364:17)

在此之后,我还单独安装了模块 zeparser。我的默认 npm 安装目录似乎是 /usr/local/lib/node_modules。

我已将 NODE_PATH 设置为

export NODE_PATH="/usr/local/lib/node_modules"

但得到同样的错误。

然后我尝试将 zeparser 模块复制到 /var/www/nodeJS/node_modules。然后错误变为

/var/www/nodeJS/node_modules/socket.io/lib/manager.js:104
  server.on('error', function(err) {
         ^
TypeError: Object #<Object> has no method 'on'
    at new Manager (/var/www/nodeJS/node_modules/socket.io/lib/manager.js:104:10)
    at Object.exports.listen (/var/www/nodeJS/node_modules/socket.io/lib/socket.io.js:78:10)
    at Object.<anonymous> (/var/www/nodeJS/app.js:35:4)
    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:903:3
4

1 回答 1

5

在您的根项目上,执行以下操作:

$ sudo npm install zeparser

它为我解决了这个问题。

于 2013-06-02T17:39:48.223 回答