Allow port 3000 in firewall
You are not using the default web server ports 80 or 443. As you put it in the question: "I run the web server using nodejs and it's on port 3000." So, you have to open the port 3000.
Open a terminal by pressing Ctrl+Alt+T and enter:
sudo ufw allow proto tcp from any to any port 3000
Forward port 3000 in the router
Make sure port 3000 is forwarded to the Ubuntu server's internal IP address in the home router. This will allow anyone from outside the home LAN access the web server.
The instructions are router specific and beyond the scope of this answer as it has nothing to do with Ubuntu.

Port 80 is the default port for the http protocol. If you want to make it easier for external users to access the web server, you may want to map the router's port 80 to the internal port 3000. This way, external users won't have to add the port number at the end of the external IP address.

The pictures above is just an example. The settings in your router may look different.
Test
Test whether you can access the web server from outside your home network.
Cleanup
Now you may delete the unwanted ufw rules. Use the command:
sudo ufw status numbered
to find the rule number(s) you want to delete, followed by :
sudo ufw delete N
where N
is the number of the rule you want to delete.
Note, the rule numbers may change once you delete a rule. So use the sudo ufw status numbered
command again before you delete another rule.
Finally delete the port forwarding rules from your router you do not need.
Hope this helps