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

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

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

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

JavaScript

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

Q&A

解決済

1回答

2868閲覧

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

shinchoroX

総合スコア17

Node.js

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

JavaScript

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

0グッド

1クリップ

投稿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

1const net = require('net') 2 3const PORT = 3000 4 5net 6 // 接続されたら何をするか設定する 7 .createServer((socket) => { 8 // まずは接続されたことを表示する 9 console.log('connected') 10 11 // データを受け取ったら何をするかを設定する 12 socket.on('data', (data) => { 13 // 受け取ったデータを表示する 14 console.log(`received: ${data}`) 15 // 受け取ったデータの内容をそのまま送り返す 16 socket.write(data) 17 }) 18 19 // 接続が閉じたら何をするか設定する 20 socket.on('close', () => { 21 console.log(`connection closed`) 22 }) 23 }) 24 // ポートを指定して、サーバを起動する 25 .listen(PORT, '127.0.0.1') 26 27// サーバが起動したことを表示する 28console.log(`Server started on port ${PORT}`) 29

試したこと

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

以下がパスです。

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

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

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

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は不慣れでして、アドバイスを頂くことにより、プロセス系のコマンドを調べて覚えることができました。 いくら本で読んでいても使わないと覚えませんね・・・
guest

回答1

0

ベストアンサー

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

投稿2022/09/30 07:41

shiracamus

総合スコア5406

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

shinchoroX

2022/09/30 08:03

ありがとうございました。 ポート番号についても理解を深めていきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問