Installing Node.js
A fast and easy way to install Node.js is by visiting https://nodejs.org/download/ and downloading the appropriate installer for your operating system. For OS X and Windows users, the installer provides a nice, easy-to-use interface. For developers that use Linux as an operating system, Node.js is available in the APT package manager. The following commands will set up Node.js and Node Package Manager (NPM):
sudo apt-get update sudo apt-get install nodejs sudo apt-get install npm
Running Node.js server
Node.js is a command-line tool. After installing it, the node
command will be available on our terminal. The node
command accepts several arguments, but the most important one is the file that contains our JavaScript. Let's create a file called server.js
and put the following code inside:
var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n'); }).listen(9000, '127.0.0.1'); console.log('Server running at http://127.0.0.1:9000/');
Tip
Downloading the example code
You can download the example code files from your account at http://www.packtpub.com for all the Packt Publishing books that you have purchased. If you purchased this book elsewhere, you can visit http://www.packtpub.com/support and register to have the files e-mailed directly to you.
If you run node ./server.js
in your console, you will have the Node.js server running. It listens for incoming requests at localhost (127.0.0.1
) on port 9000
. The very first line of the preceding code requires the built-in http
module. In Node.js, we have the require
global function that provides the mechanism to use external modules. We will see how to define our own modules in a bit. After that, the scripts continue with the createServer
and listen
methods on the http
module. In this case, the API of the module is designed in such a way that we can chain these two methods like in jQuery.
The first one (createServer
) accepts a function that is also known as a callback, which is called every time a new request comes to the server. The second one makes the server listen.
The result that we will get in a browser is as follows: