With apache /var/www/ become the convention for placement of static and PHP based apps. /var/log/ is the convention for logging your output, even though some people place it next to the app. Finally i see /usr/local/bin/ used a lot for scripts.
With apps that just bind to ports like node, rails, django, docker; Where do you like to place these files?
Do you create a user for the technology? Apache user for Apache, node user for running node? Or do you create user for each application? Or just allow supervisor or whatever process managing system to kick things off?
In Docker, you'd typically allow your app to write where it would by default however you would set that path as a VOLUME or attach a volume with the -v switch on docker run.
https://docs.docker.com/userguide/dockervolumes/#volume-def
By doing this you can then choose to run another Docker image that contains log inspection tools with the same volume attaches for analysing the logs of your application.
Typically in a container it doesn't matter which user runs the process as it can be the only process running (so it would be root). If you run separate containers for each part of your application you also don't need to worry about the files the container can access as they have no control out of the container it is on.
Note: This is a Docker specific answer.
I usually place the application itself in /opt or /srv (depends if I'm on debianoid or redhatoid). I'd sometimes create, but I should always, a separate user for Node.js. Other times I run the app as my own user (which is bad because that user has some admin powers, via sudoers).
Finally, since you can't run ports <1024 as regular users, I use nginx as front to node.js.