Knowledgebase
Getting Started with NodeJS at Arvixe
Posted by on 11 October 2015 02:55 PM
While not strictly required, it is considered good practice for your application to live outside of your web root. For this tutorial, we'll be calling our account 'user' and our application 'myapp'.
 
First, prepare our application for use with the server. Our myapp contains the following files:
  • myapp.js
  • index.html
  • server.js
  • style.css
The server requires that the application follow a specific layout in order to be loaded. Specifically, the entry file must be named 'app.js' and a tmp directory should exist inside the application folder. The entry file should be the file that starts the http listen, such as:
 
var http = require('http');
var server = http.createServer(function(req, res) {
...
});
server.listen(3000);
 
For many applications you can either rename server.js or simply symlink it to the correct location. Install myapp to the following folder(s):
    
/home/user/myapp
/home/user/myapp/myapp.js
/home/user/myapp/index.html
/home/user/myapp/server.js
/home/user/myapp/style.css
 
Then symlink server.js to app.js:
    
cd /home/user/myapp
ln -s server.js app.js
    
Create a tmp directory in the myapp directory:
    
mkdir tmp
    
Now that the application is prepared, we can tell the web server to actually use it. In your web root, which for our example will be /home/user/public_html, we need to create an .htaccess file that tells the web server to use our application when accessing that directory. Create a file using your preferred text editor named .htaccess (noting that the filename starts with a period). Inside it, add:
    
PassengerEnabled on
PassengerAppRoot /home/user/myapp
SetEnv NODE_ENV production
SetEnv NODE_PATH /usr/lib/node_modules
    
Save the above file, and place it in your web root. You should now be able to test your application by visiting your website. If your application requires further application-specific setup, please do so as your application instructs if applicable.

Explaining the .htaccess Directives

Earlier we created an .htaccess file with four lines, or in this case directives. The server supports node.js through Phusion Passenger and that file is required to tell the web server to use Passenger, along with how it should be configured. Here are the directives, and how they are used:
 
  • PassengerEnabled on - tells the web server to enable Passenger
  • PassengerAppRoot /home/user/myapp - tells Passenger that our application is in /home/user/myapp
  • SetEnv NODE_ENV production - sets the environment variable NODE_ENV to production, which if your application uses it will relay to the application that it needs to use it's production configuration
  • SetEnv NODE_PATH /usr/lib/node_modules - tells Passenger to also look for node.js modules in the global directory, where modules that the server provides exist.
(14 vote(s))
Helpful
Not helpful

Comments (0)
Post a new comment
 
 
Full Name:
Email:
Comments:
CAPTCHA Verification 
 
Please enter the text you see in the image into the textbox below (we use this to prevent automated submissions).