I have question, this might be small but I've not found answer anywhere.
Do we need to have a port address for a node.js server to connect to other node.js server and create a communication between them or can we connect in any other way without using port address?
Yes, you need a port number to talk over the Internet with another Server. Since you cannot send raw IP packets (your server wouldn't allow it), you want to use a transport protocol like TCP or UDP (TCP allows stateful connections while UDP is stateless) which both require a port number to distinct the process on the destination server.
Any application protocol like the Hyper Text Transfer Protocol (HTTP) uses a transport protocol to carry the payload. This abstraction is defined as OSI layers.