In this Article, we will learn how to create a simple Node.js web server and handle HTTP and Http2 requests.
Node.js is an open-source and cross-platform JavaScript runtime environment. It is most popular tool for almost any kind of project like web and static as well report generation UI .
Node.js runs the V8 JavaScript engine, the core of Google Chrome, outside of the browser. This allows Node.js to be very performant.
To follow along with this tutorial - the reader will need the following:
A basic knowledge of JavaScript programming is essential.
Having basic idea of Node.js installed on your machine.
Following are way to create Server in node js
1) Creating Server using ‘http‘ Module:
Import http module: Import http module and store returned HTTP instance into a variable.
var express = require('express');
var path = require('path');
var netjet = require('netjet');
const root = path.join(__dirname, '/public')
const app = express()
app.set('views', path.join(__dirname, 'view'));
app.set('view engine', 'ejs')
app.get("/", async (req, res) => {
res.render("index")
})
app
.use(netjet({
cache: {
max: 100
}
}))
.use(express.static(root))
.listen(3008);
2) Creating Server using ‘http2‘ Module:
Import http module: Import http module and store returned HTTP2 instance into a variable.
const http2Express = require('http2-express-bridge')
const http2 = require('http2')
const { readFileSync } = require('fs')
const express = require("express")
const fs = require("fs")
var path = require('path');
var cors= require('cors')
const app = http2Express(express)
const bodyParser = require("body-parser");
app.use(cors());
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended : true}));
const PUBLIC_PATH = path.join(__dirname, '/public')
app.use(express.static("public"))
app.set('views', path.join(__dirname, 'view'));
app.set('view engine', 'ejs')
const options = {
key: fs.readFileSync("./server.key"),
cert: fs.readFileSync("./server.crt")
};
app.get('/', function (req, res) {
res.render('index')
})
const server = http2.createSecureServer(options,app)
server.listen(3000, () => {
console.log(`listening on port 3000`)
})
3) Creating Server using ‘http2‘ Module:
Import http module: Import http module and store returned spdy instance into a variable.
const spdy = require("spdy")
const express = require("express")
const fs = require("fs")
const {promisify} = require("util")
var netjet = require('netjet');
var path = require('path');
const app = express()
app.use(netjet({
cache:{max:100}
}))
app.use(express.static("public"))
app.set('views', path.join(__dirname, 'view'));
app.set('view engine', 'ejs')
app.get("/", async (req, res) => {
res.render("index")
})
spdy.createServer(
{
key: fs.readFileSync("./server.key"),
cert: fs.readFileSync("./server.crt"),
spdy: {
plain: false,
protocols: [ 'h2', 'spdy/3.1','spdy/2','spdy/3', 'http/1.1' ],
'x-forwarded-for': true
}
}
,
app
).listen(3000, (err) => {
if(err){
throw new Error(err)
}
console.log("Listening on port 3000")
})