2013-04-12 104 views
1

我已經成功安裝了node.js。我創建了文件錯誤:找不到模塊'zeparser'

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 
+0

文件夾/ usr/local/lib/node_modules僅適用於全局模塊。如果你已經在本地安裝了它們,那麼從項目文件夾運行它。 – user568109

回答

5

在您的根項目,這樣做:

$ sudo npm install zeparser 

它解決了這個問題對我來說。