错误:找不到模块'zeparser'

时间:2013-04-12 14:17:24

标签: node.js socket.io npm

我已成功安装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

1 个答案:

答案 0 :(得分:5)

在您的根项目上,执行:

$ sudo npm install zeparser

它解决了我的问题。