2012-12-03 89 views
0

第一次嘗試使用Amazon EC2安裝node.js服務器。根據this article。安裝node.js,然後是npm,然後是所有其他模塊。一切都沒有錯誤。但由於某種原因,我的服務器無法啓動。你能告訴我在哪裏可以找到錯誤嗎?在Amazon EC2上全新安裝後運行應用程序時出現錯誤

[[email protected] ~]$ node server.js 

module.js:340 
    throw err; 
     ^
Error: Cannot find module 'socket.io' 
    at Function.Module._resolveFilename (module.js:338:15) 
    at Function.Module._load (module.js:280:25) 
    at Module.require (module.js:362:17) 
    at require (module.js:378:17) 
    at Object.<anonymous> (/home/ec2-user/server.js:3:10) 
    at Module._compile (module.js:449:26) 
    at Object.Module._extensions..js (module.js:467:10) 
    at Module.load (module.js:356:32) 
    at Function.Module._load (module.js:312:12) 
    at Module.runMain (module.js:492:10) 
[[email protected] ~]$ cd node 
[[email protected] node]$ node server.js 

module.js:340 
    throw err; 
     ^
Error: Cannot find module '/home/ec2-user/node/server.js' 
    at Function.Module._resolveFilename (module.js:338:15) 
    at Function.Module._load (module.js:280:25) 
    at Module.runMain (module.js:492:10) 
    at process.startup.processNextTick.process._tickCallback (node.js:244:9) 

回答

1

它看起來像只是找不到socket.io。試試這個:

cd /home/ec2-user 
npm install socket.io 
node server.js 
+0

謝謝你最紅。我啓動了Node.js服務器。顯然問題是我在全局設置模塊(sudo npm install socket.io -g)。附加問題 - 我如何在node.js附近運行正常的http服務器Apache,PHP和mySQL?對於使用node.js的客戶端(HTML)是必要的 – Astraport

1

我同意「The Reddest」,但是,文章說安裝express應該安裝socket.io作爲依賴。你是否在文章中運行了最後兩個npm命令?

sudo npm install express -g 
sudo npm install forever -g 

更重要的是,創建一個文件的package.json,並安裝它的依賴本地的應用程序,而不是全球。閱讀更多關於這個,在這裏.. http://docs.nodejitsu.com/articles/getting-started/npm/what-is-the-file-package-json

+0

是的,我做過。我在上面的評論中解釋過。謝謝。 – Astraport

+0

你可以直接將它明確地添加到一個包json文件中,並且快速和永久。 –

相關問題