質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.12%
Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

解決済

Node.jsにてサーバープログラムにエラーが発生します。

shinchoroX
shinchoroX

総合スコア11

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

1回答

0リアクション

1クリップ

313閲覧

投稿2022/09/30 03:59

前提

Udemyの講座を購入に、Node.jsについて学んでおります。
windows環境で、WSLを利用しています。
講座の動画通りに(プログラムはサポートページからコピペ)をして実行したのですが
エラーが発生します。

アドバイスを頂けると幸いです。

発生している問題・エラーメッセージ

Server started on port 3000 node:events:505 throw er; // Unhandled 'error' event ^ Error: listen EACCES: permission denied 127.0.0.1:3000 at Server.setupListenHandle [as _listen2] (node:net:1355:21) at listenInCluster (node:net:1420:12) at doListen (node:net:1559:7) at processTicksAndRejections (node:internal/process/task_queues:84:21) Emitted 'error' event on Server instance at: at emitErrorNT (node:net:1399:8) at processTicksAndRejections (node:internal/process/task_queues:83:21) { code: 'EACCES', errno: -13, syscall: 'listen', address: '127.0.0.1', port: 3000 }

該当のソースコード

JavaScript

const net = require('net') const PORT = 3000 net // 接続されたら何をするか設定する .createServer((socket) => { // まずは接続されたことを表示する console.log('connected') // データを受け取ったら何をするかを設定する socket.on('data', (data) => { // 受け取ったデータを表示する console.log(`received: ${data}`) // 受け取ったデータの内容をそのまま送り返す socket.write(data) }) // 接続が閉じたら何をするか設定する socket.on('close', () => { console.log(`connection closed`) }) }) // ポートを指定して、サーバを起動する .listen(PORT, '127.0.0.1') // サーバが起動したことを表示する console.log(`Server started on port ${PORT}`)

試したこと

webで検索し
"permission denid"とエラーにあるので、このJavaScriptファイルがあるディレクトリに対して
chownコマンドをしましたが、アクセスができなかったり、「No such...」と言われたりで、権限の変更が出来ません。
chmod も試したのですが、同じです。

以下がパスです。

/mnt/c/Users/shins/web-app-practice

補足情報(FW/ツールのバージョンなど)

windows10にて、WSLを使用しています。
asdfも使っています。
(全て動画を同じです。)

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

kazto

2022/09/30 05:07

何回か実行しているうちに、前のプロセスが残ってしまっていたり、ということはありませんか?
shinchoroX

2022/09/30 05:33 編集

アドバイスありがとうございます。 以下を行いましたが、同じ症状が出ました。 ①WSLを再起動 ②ps aux でプロセスを確認し、nodejsのようなプロセルを"kill"しました。 プロセスの調べ方などもあまり詳しくなのですが・・・
shinchoroX

2022/09/30 07:05

またWSLを「起動せずに」Windowsのコマンドプロンプト上で実行しても同じエラーでした。 但し、errno:-4092 とLinux環境での"-13" とでは異なりましたが・・・
shiracamus

2022/09/30 07:09 編集

3000番ポートが使えないのでは? 8888番ポートとかで試してみては?
shinchoroX

2022/09/30 07:22 編集

無事解決しました! ありがとうございます。 8888では無理でしたが、8000や7000だとしっかりと動きました。 web情報では、1024以下のポート番号以外では権限が・・・とあったので 3000番なので権限は問題ないと安心していました。 本当にありがとうございました。 お手数ではございますが、ベストアンサーとしてshiracamus様のご回答を、後学の為にも残したいと考えております。 回答欄に回答を頂けると幸いです。
shinchoroX

2022/09/30 07:27 編集

また、kazto様もアドバイスありがとうございました。 Linuxは不慣れでして、アドバイスを頂くことにより、プロセス系のコマンドを調べて覚えることができました。 いくら本で読んでいても使わないと覚えませんね・・・

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.12%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。