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 に答える