Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Significance of port 3000 in Express apps

I noticed that almost all examples of Express.js applications use port 3000 as the default listening port for HTTP servers. Is this just because it's a rarely used port, or is there any other reason for this port number?

If I want to run multiple apps side-by-side on my local machine, is it good practice to use ports like 3000, 3001, 3002, etc.?

(I understand that ideally, you'd let the system assign ports. This is just a question as a matter of simplicity, and why 3000 seems to be a conventional assignment.)

like image 905
M Miller Avatar asked Jun 20 '16 18:06

M Miller


People also ask

What protocol is port 3000?

Side note: TCP port 3000 uses the Transmission Control Protocol. TCP is one of the main protocols in TCP/IP networks. Whereas the IP protocol deals only with packets, TCP enables two hosts to establish a connection and exchange streams of data.

What port should I use for Express?

js/Express. js App Only Works on Port 3000 - Stack Overflow. Stack Overflow for Teams – Start collaborating and sharing organizational knowledge.

Which of the following is used to find if port 3000 is in use?

netstat -ano | findstr : 3000.


1 Answers

3000 is a somewhat arbitrary port number chosen because it allows you to experiment with express without root access (elevated privilege). Ports 80 and 443 are the default HTTP and HTTPS ports but they require elevated privilege in most environments.

Using port 3000 in examples also helps indirectly emphasize that you ideally want to put your express app behind nginx or Apache httpd or something like that which would listen on port 80 and/or 443.

There is no reason (that I'm aware of, anyway) why 3000 is better than 8000 or 4000 or 8080 or any of a number of other port numbers that are accessible without elevated privileges.

like image 185
Trott Avatar answered Sep 29 '22 04:09

Trott