Being new to node js magic world, i'm wondering how does a web application's setup look like on a real production server? So far all tutorials, create the js file that is started from a console...and that's it. Anyone has created a real world web app that uses node js in the back end? Can you please describe how is it setup, and how reliable this infrastructure is ? I'm coming from the asp.net and php world that require heavy web servers...and can't have a clear idea about node stuff.
We're looking for long answers that provide some explanation and context. Don't just give a one-line answer; explain why your answer is right, ideally with citations. Answers that don't include explanations may be removed.
I work on a node.js web application that is not yet in production, but we do run a development server setup similarly to how I would setup production.
It's a Linux server (CentOS specifically, but any distro would do) with a service account dedicated for running the web app. Deployment is as simple as SCP'ing the tarball file up to the server and running:
npm allows for life cycle scripts to be setup via package.json which is how
We use the daemon module when starting up via
Since we use npm for packaging and installation, the code ends up living under $HOME/node_modules/. And again, this runs under a dedicated user account, so I know exactly what modules are and are not available at runtime.
In order to leverage multiple CPU's, the server.js script will fork a worker (via the cluster module) for each CPU and monitor them for death. If a worker dies, the master process restarts it. There are modules out there to kick off your app and auto-restart if it dies, however, given that our master does no work except for baby sitting the workers, I don't bother watching the master. The game of "who watches the watchers" could go on infinitely.
When going to production, there are only three more elements to build out, which we have not done yet:
Use a Platform as a Service.
I've successfully deployed to Heroku and Jit.su. Nodester seems cool, and I've used Azure for .NET things and if Node.js is equally good then that is a good option as well.
If you want to host a node app on your own server you could just run
I have came across the similar asignment where I asked to implement or create three different modules.
All my web application requests are pointing to REST module which is purely Spring web service implementation. This is before node.js coming in to picture. Later I asked to add node layer in between web and REST module so that all my web applications request should route through node module and node will hand it over to REST module and vice versa. This is because looking at the business need and some specific requirement.
So my web application is having all static html implementation which are calling node.js module through jquery ajax call and on success html dom elements are filled up with some values.
Lets take an example I have a button click event on which jquery ajax call should be called to node application. For this node application must be in running state. To run node.js application use following command.
$ node index.js
Where index.js is my main starting point for node module which has some url e.g. getContactDetails
Inside node I am giving call to REST module like below