2017-07-02 38 views
1

創建一個簡單的node.js靜態服務器

var express = require('express'); 
 
var app = express(); 
 
app.use('/', express.static('./')); 
 
app.listen(80);

The error msg I receive in the cli via "node server.js" is: events.js:160 throw er; // Unhandled 'error' event ^

Error: listen EACCES 0.0.0.0:80 at Object.exports._errnoException (util.js:1018:11) at exports._exceptionWithHostPort (util.js:1041:20) at Server._listen2 (net.js:1245:19) at listen (net.js:1294:10) at Server.listen (net.js:1390:5) at EventEmitter.listen (G:\angular\node_modules\express\lib\application.js:618:24) at Object. (G:\angular\server.js:4:5) at Module._compile (module.js:570:32) at Object.Module._extensions..js (module.js:579:10) at Module.load (module.js:487:32)

Any ideas why a simple bit of code would generate errors? I got the code from an older angularjs book I'm trying to learn from. Changes with node or express possibly?

+0

您需要將資源名稱添加爲靜態路由(例如包含前端代碼或html等的文件夾),而不是另一條路徑:) –

回答

1

在Unix上,所有低於1024的端口都被稱爲Privileged Ports。只有root或其他特定系統用戶可以在這裏啓動服務。

當您使用普通用戶進行編程時(通常應該如此),通常會在1024以上的端口上啓動您的開發服務器。對於Web服務器,通常使用80803000

錯誤消息Error: listen EACCES 0.0.0.0:80也給了你一個提示。 EACCESS表示您無權在端口80上打開服務器。只有root用戶才能運行生產代碼。

另外一條建議:AngularJS在過去的幾年中改變了很多。所以如果你想學習它,不要使用舊書。你學到的很多東西可能已經過時了,現在做的不同。

+1

這對我有效。只需對其他端口進行簡單更改即可使用。 8080通常是我用來提供本地文件的端口,但我想我已經嘗試過更改端口。大幫助!另外,我正在學習AngularJS不是真正的nodejs,但是這本書似乎在推動很多節點並表達。無論哪種方式...感謝您的解釋和解決方案。 – Rogue33

+0

@ Rogue33當然,很樂意幫忙^^ 享受學習Angular的一些Node和Express! – Munen

-1

此代碼爲我工作,請嘗試:

var express = require('express'); 

var app = express.createServer(); 

app.get('/', express.static(__dirname + 'your path')); 

app.listen(80); 
0

Error: listen EACCES意味着你沒有權限聽聽那個港口。嘗試不同的端口。

和靜態內容,應服這樣

app.use(express.static(__dirname + '/'));

__dirname代表當前目錄。

相關問題