Unit 4
Unit 4
To access web pages of any web application, you need a web server. The web
server will handle all the http requests for the web application e.g IIS is a web
server for ASP.NET web applications and Apache is a web server for PHP or Java
web applications.
Node.js provides capabilities to create your own web server which will handle
HTTP requests asynchronously. You can use IIS or Apache to run Node.js web
application but it is recommended to use Node.js web server.
The following example is a simple Node.js web server contained in server.js file.
server.js
});
In the above example, we import the http module using require() function. The
http module is a core module of Node.js, so no need to install it using NPM. The
next step is to call createServer() method of http and specify callback function
with request and response parameter. Finally, call listen() method of server object
which was returned from createServer() method with port number, to start
1
Shri V J Modha College of IT
Unit-4
listening to incoming requests on port 5000. You can specify any unused port
here.
Run the above web server by writing node server.js command in command prompt
or terminal window and it will display message as shown below.
This is how you create a Node.js web server using simple steps. Now, let's see
how to handle HTTP request and send response in Node.js web server.
2
Shri V J Modha College of IT
Unit-4
Handle HTTP Request
The http.createServer() method includes request and response parameters
which is supplied by Node.js. The request object can be used to get information
about the current HTTP request e.g., url, request header, and data. The response
object can be used to send a response for a current HTTP request.
server.js
}
else if (req.url == "/student") {
}
else if (req.url == "/admin") {
3
Shri V J Modha College of IT
Unit-4
else
res.end('Invalid Request!');
});
In the above example, req.url is used to check the url of the current request and
based on that it sends the response. To send a response, first it sets the response
header using writeHead() method and then writes a string as a response body
using write() method. Finally, Node.js web server sends the response using end()
method.
To test it, you can use the command-line program curl, which most Mac and
Linux machines have pre-installed.
curl -i http://localhost:5000
HTTP/1.1 200 OK
Content-Type: text/plain
4
Shri V J Modha College of IT
Unit-4
Connection: keep-alive
For Windows users, point your browser to http://localhost:5000 and see the
following result.
The same way, point your browser to http://localhost:5000/student and see the
following result.
5
Shri V J Modha College of IT
Unit-4
It will display "Invalid Request" for all requests other than the above URLs.
server.js
Copy
var http = require('http');
server.listen(5000);
6
Shri V J Modha College of IT
Unit-4
So, this way you can create a simple web server that serves different responses.
7
Shri V J Modha College of IT
Unit-4
Node.js File System
Node.js includes fs module to access physical file system. The fs module is
responsible for all the asynchronous or synchronous file I/O operations.
Let's see some of the common I/O operation examples using fs module.
Reading a File
Use the fs.readFile() method to read the physical file asynchronously.
Parameter Description:
var fs = require('fs');
console.log(data);
});
The above example reads TestFile.txt (on Windows) asynchronously and executes
callback function when read operation completes. This read operation either
throws an error or completes successfully. The err parameter contains error
information if any. The data parameter contains the content of the specified file.
8
Shri V J Modha College of IT
Unit-4
The following is a sample TextFile.txt file.
TextFile.txt
Now, run the above example and see the result as shown below.
var fs = require('fs');
9
Shri V J Modha College of IT
Unit-4
Writing a File
Use the fs.writeFile() method to write data to a file. If file already exists then it
overwrites the existing content otherwise it creates a new file and writes data
into it.Signature:
Parameter Description:
The following example creates a new file called test.txt and writes "Hello World"
into it asynchronously.
var fs = require('fs');
In the same way, use the fs.appendFile() method to append the content to an
existing file.
var fs = require('fs');
10
Shri V J Modha College of IT
Unit-4
console.log(err);
else
console.log('Append operation complete.');
});
Open File
Alternatively, you can open a file for reading or writing using the fs.open() method.
Parameter Description:
Flags
The following table lists all the flags which can be used in read/write operation.
Flag Description
r Open file for reading. An exception occurs if the file does not exist.
r+ Open file for reading and writing. An exception occurs if the file does not exist.
rs+ Open file for reading and writing, telling the OS to open it synchronously. See notes for 'rs' about
using this with caution.
w Open file for writing. The file is created (if it does not exist) or truncated (if it exists).
w+ Open file for reading and writing. The file is created (if it does not exist) or truncated (if it exists).
11
Shri V J Modha College of IT
Unit-4
Flag Description
a Open file for appending. The file is created if it does not exist.
a+ Open file for reading and appending. The file is created if it does not exist.
The following example opens an existing file and reads its content.
var fs = require('fs');
if (err) {
return console.error(err);
}
12
Shri V J Modha College of IT
Unit-4
Delete File
Use the fs.unlink() method to delete an existing file.
fs.unlink(path, callback);
Example:Delete a File
var fs = require('fs');
fs.unlink('test.txt', function () {
console.log('File Deleted Successfully.');
});
fs.writeFile(filename, data[, options], callback) Writes to the file. If file exists then overwrite the content
otherwise creates new file.
13
Shri V J Modha College of IT
Unit-4
Method Description
fs.access(path[, mode], callback) Tests a user's permissions for the specified file.
fs.appendFile(file, data[, options], callback) Appends new content to the existing file.
14
Shri V J Modha College of IT