6

Salam (こんにちはという意味) :)

Windows 7 マシンで node.js スクリプトを開発しましたが、正常に動作しています。しかし、Ubuntu 12.04 で実行すると、次のエラーが表示され、アプリが停止します。

    throw er; // Unhandled 'error' event
              ^
Error: listen EACCES
    at errnoException (net.js:901:11)
    at Server._listen2 (net.js:1020:19)
    at listen (net.js:1061:10)
    at Server.listen (net.js:1127:5)
    at Object.start (/httpServer/httpServer.js:9:34)
    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)

エラーの原因となったポイントは.listen(80)次の行にあります。

http.createServer(onRequest).listen(80); 
                             ^

代わりに他のポート番号(100、300、500など)も試しまし80たが、エラーは同じでした。

4

6 に答える 6

13

Ubuntu では、root 権限がないと 1024 未満のポートをリッスンできません。sudo でノードを実行してみてください。

sudo node app.js
于 2013-11-04T04:36:19.543 に答える
1

おそらくポート 80 で別の何かが実行されているため、競合しています。

ポート 80 を使用しているものを見つけて停止するには、こちらをお読み ください http://www.cyberciti.biz/faq/find-linux-what-running-on-port-80-command/

  1. 通常、Apache などの別のサーバーが有効になっていることを意味します。だからやめて。

    sudo サービス apache2 停止

  2. または、npm startすでに別の端末で実行している

  3. またはSkypeが実行されています。その場合は、設定に移動してポートを変更してください。ログアウトしてログイン

    [ツール] -> [オプション] -> [詳細設定] -> [接続] に移動し、[代わりにポート 80 と 443 を使用する] ボックスのチェックを外します。ソース

  4. または別のポートを使用する

    http-server -a localhost -p 8000

于 2015-02-09T04:42:35.520 に答える
0

サーバーをリッスンするときに、ポートとともに「IPアドレス」を明示的に言及することで、エラーを修正できました。

于 2014-04-06T12:25:52.330 に答える
0

おそらくNode.jsサーバーから直接、またはコンパイルして、最新のノードパケットをインストールすることをお勧めします。

3700 など、どのサービスにも予約されていないポートを設定してみてください。

ただし、コードの他の断片を確認するのは役立つかもしれません。

于 2013-11-03T21:34:44.453 に答える
0

これは、そのポートで既にリッスンしている何かがある場合にも発生する可能性があります。ポートを一般的なデフォルトの 80 から 10014 のようなものに変更してみて、それが役立つかどうかを確認してください。

于 2014-01-19T02:40:42.440 に答える