This is a sample basic Node.js website using plain HTML files and the built in http and fs modules.
This tutorial will walk you through the creation of a very basic website using only Node.js built in modules. Follow these steps to create a Node.js website:
Create a folder for your Node.js project.
Create a home page HTML and call it
index.html. Add the required HTML tags and some basic content in theindex.htmlfile.Create a second file and for now, call it
another-page.html. Add the required HTML tags and some basic content in theanother-page.htmlfile.Add a link in the
index.htmlpage toanother-page.html. And add a link in theanother-page.htmltoindex.html. This will allow for easy testing of pages.Create a new file called
app.js.In
app.jsimport the required modules:varhttp=require('http');varurl=require('url');varfs=require('fs');
Create an http server:
http.createServer(function(req,res){}).listen(8080);
This will start a web server. The server is available to test by opening a browser and using the URL
http://localhost:8080/index.html.Inside the
createServerfunction add code to fetch the current URL:varq=url.parse(req.url,true);varfilename="."+q.pathname;
Inside the
createServerfunction, after the the previous lines of code, add code to load the appropriate HTML file based on the URL. For example the URLhttp://localhost:8080/index.htmlwill load theindex.htmlfile.fs.readFile(filename,function(err,data){res.writeHead(200,{'Content-Type': 'text/html'});res.write(data);returnres.end();});
Inside the
readFilefunction, add code that will display an error message in case the requested URL does not match an exsting file:if(err){res.writeHead(404,{'Content-Type': 'text/html'});returnres.end("404 Not Found");}
To test your Node.js website, open up a terminal, use
cdto navigate to your project folder, and usenode app.jsto start your file. Then open a browser and visit the URLhttp://localhost:8080/index.html.
Your final code in app.js should look like this:
varhttp=require('http');varurl=require('url');varfs=require('fs');http.createServer(function(req,res){varq=url.parse(req.url,true);varfilename="."+q.pathname;fs.readFile(filename,function(err,data){if(err){res.writeHead(404,{'Content-Type': 'text/html'});returnres.end("404 Not Found");}res.writeHead(200,{'Content-Type': 'text/html'});res.write(data);returnres.end();});}).listen(8080);Full tutorial URL:
https://codeadam.ca/learning/nodejs-website.html
