I'm developing a MEAN stack-based application,I've some doubts about the file structure,I'm considering three options:
I've searched online, but I haven't found nothing
Personally I'd go with the last option on your list: "Frontend(Angular) and REST API served both by NodeJS divided by routes (/page and /api)".
I saw an answer on here recently that said:
When you serve a node.js app note that you are the author of your own web server. Any potential bug in your app is a directly exploitable bug on the internet. Some people are (justifiably) not comfortable with this.
Adding a layer of Apache or Nginx in front of your node.js app means you have a battle-tested, security-hardened piece of software on the live internet as an interface to your app. It adds a tiny bit of latency (the reverse proxying) but most consider it worth it.
This used to be the standard advice in the early days of node.js. But these days there are also sites and web services that exposes node.js directly to the internet. The http.Server module is now fairly well battle-tested on the internet to be trusted.
Regarding security, this says to me that you shouldn't need things such as Apache or Nginx in front of your Node app.
In terms of opinion of file structure, I'd choose this option also just because I've worked in a number of places where they've done this and it's made interacting with the API simple, predictable and approachable for both internal and external parties who want to consume the API (I'm a big fan of companies using either api.mydomain.com or mydomain.com/api/).
However I guess this down to preference.