How many way we can create server for Http1 and Http2 node js
Published: 2023-06-29 13:52:44

 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")
})
 
# Conclusion #

Here we learn about different ways in nodejs .
We import module like http , http2 and spdy  to create server.
Now, run your web server using node app.js. Visit http://localhost:3000 and you will see a message saying "Hello World".
Refer to the Introduction to Node.js for a more comprehensive guide to getting started with Node.js.
 
More Examples
See https://github.com/nodejs/examples for a list of Node.js examples that go beyond hello world.