Node.js ialah persekitaran masa jalan JavaScript yang sangat popular yang menjalankan kod JavaScript pada bahagian pelayan. Node.js menyelesaikan banyak masalah yang berkaitan dengan menulis kod sisi pelayan dan boleh menunggu permintaan sambungan, menerima permintaan dan bertindak balas. Sama seperti bahasa pengaturcaraan dan rangka kerja sebelah pelayan yang lain, Node.js juga perlu mendengar pada port untuk menerima permintaan sambungan. Walau bagaimanapun, kadangkala kita menghadapi situasi bahawa port lalai tidak boleh dibuka Seterusnya, mari kita lihat penyelesaian kepada masalah ini.
Pertama sekali, kita perlu menjelaskan konsep pelabuhan. Dalam rangkaian komputer, port ialah konsep logik untuk komunikasi rangkaian dan diperkenalkan untuk membolehkan pelbagai proses atau aplikasi pada hos komputer berkongsi sumber rangkaian. Nombor port ialah nombor 16-bit antara 0 hingga 65535. Dalam pengaturcaraan sisi pelayan, kita perlu menentukan nombor port yang melaluinya proses pelayan mengikat ke alamat IP tertentu. Apabila pelanggan perlu menyambung ke pelayan, mereka perlu menggunakan alamat IP dan nombor port yang sepadan untuk berkomunikasi dengan pelayan.
Port lalai Node.js ialah 3000. Kita boleh membuka port dalam kod dengan mencipta contoh pelayan HTTP dan mendengar pada port:
const http = require('http'); const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('Hello, World!'); }); server.listen(3000, () => { console.log('Server running at http://localhost:3000/'); });
Contoh di atas mencipta pelayan HTTP instance , dan menentukan nombor port pendengarannya sebagai 3000
. Jika operasi berjaya, kita boleh memasukkan http://localhost:3000/
dalam pelayar untuk mengakses pelayan.
Walau bagaimanapun, kadangkala kami tidak boleh membuka port lalai, yang mungkin disebabkan oleh sebab berikut:
Dalam sesetengah kes, sudah ada proses menggunakan nombor port. Dalam kes ini, kita perlu menamatkan proses menggunakan nombor port tersebut atau menggunakan nombor port yang berbeza. Kita boleh menggunakan perintah lsof
untuk mencari proses yang menduduki port:
sudo lsof -n -i4TCP:3000 | grep LISTEN
Output akan menjadi senarai proses yang menduduki port, dan kemudian kita boleh menggunakan perintah kill
untuk menamatkan proses ini:
sudo kill <PID>
Dalam sesetengah kes, tembok api sistem mungkin menyekat akses kepada port ini. Pada ketika ini, kita perlu mengkonfigurasi peraturan firewall untuk membenarkan trafik melalui port. Khususnya, kita boleh menggunakan perintah iptables
untuk mengkonfigurasi peraturan firewall:
sudo iptables -A INPUT -p tcp --dport 3000 -j ACCEPT
Ini akan membenarkan trafik TCP melalui port 3000
. Jika tembok api UFW digunakan, peraturan perlu dikonfigurasikan sama:
sudo ufw allow 3000/tcp
Dalam sesetengah kes, kami mungkin tidak mempunyai kebenaran untuk menggunakan beberapa nombor port rendah (seperti 1-1023) atau mungkin tidak mempunyai kebenaran yang mencukupi untuk membuka port. Pada masa ini, kita perlu menggunakan perintah sudo
untuk menjalankan aplikasi Node.js dengan hak pentadbir:
sudo node app.js
Jika terdapat masalah dengan sambungan rangkaian kami, ia mungkin menghalang port daripada dibuka. Pada ketika ini, kita perlu menyemak sambungan rangkaian dan tetapan penghala untuk memastikan ia berfungsi dengan betul.
Secara umum, jika kami tidak dapat membuka port lalai Node.js, ini mungkin disebabkan oleh beberapa sebab ini. Situasi yang berbeza perlu ditangani dengan sewajarnya. Saya harap artikel ini membantu anda menyelesaikan masalah anda dan berjaya membangunkan aplikasi Node.js yang hebat.
Atas ialah kandungan terperinci port lalai nodejs tidak boleh dibuka. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!