NodeJS Cheat Sheet

NODE CUSTOM MODULE

index.js

var mymath = require("./mymodule")

console.log(mymath.add(5,6));
console.log(mymath.sub(5,6));
console.log(mymath.mul(5,6));
console.log(mymath.div(5,6));
console.log(mymath.mod(5,6));

cobj = new mymath.MyCircle(5);
cobj.area();

mymodule.js

exports.add = (x, y) => x + y;
exports.sub = (x, y) => x – y;
exports.mul = (x, y) => x * y;
exports.div = (x, y) => x / y;
exports.mod = (x, y) => x % y;

exports.MyCircle = class {

constructor(r) {
    this.radius = r;
    console.log("Hello I am My Circle Constructor...");
}

area() {
    let area = Math.PI * this.radius * this.radius;
    console.log(`Area: ${area.toFixed(2)}`);
}
}

NODE http MODULE

index.js

var http = require(“http”)

http.createServer((req, res) => {
// res.writeHead(‘Content-Type’, ‘text/plain’);
// res.writeHead(‘Content-Type’, ‘application/json’);
res.writeHead(200, {‘Content-Type’ : ‘text/html’});
res.write("this is line 1….");

console.log(req.url);

if(req.url == "/") {
    res.write("Home req hit</br>")
} else 

if(req.url == "/teacher") {
    res.write("Teacher req hit</br>")
} else 

if(req.url == "/student") {
    res.write("Student req hit</br>")
} else 

{
    res.end("Page Not Found....");
}

res.end("hello world....");
}).listen(8989, () => {
console.log("listening at port 8989…")
});

EXPRESS ROUTING

index.js

var express = require("express");
var app = express();

app.get("/", (req, res) => {
  res.send("Home Page");
});

app.get("/student", (req, res) => {
  data = { result: "Student GET Request" };
  res.send(data);
});

app.post("/student", (req, res) => {
  data = { result: "Student post Request" };
  res.send(data);
});

app.put("/student", (req, res) => {
  data = { result: "Student put Request" };
  res.send(data);
});

app.delete("/student", (req, res) => {
  data = { result: "Student delete Request" };
  res.send(data);
});

app
  .route("/teacher")
  .get((req, res) => {
    data = { result: "Teacher get Request" };
    res.send(data);
  })
  .post((req, res) => {
    data = { result: "Teacher post Request" };
    res.send(data);
  })
  .put((req, res) => {
    data = { result: "Teacher put Request" };
    res.send(data);
  })
  .delete((req, res) => {
    data = { result: "Teacher delete Request" };
    res.send(data);
  });


app.listen(8989, () => {
  console.log("Listening at port 8989");
});

RUN COMMAND

#if file is index.js then you can simply run using . instead of filename
node .
node app.js

#install nodemon
npm i nodemon
OR
npm i -g nodemon

nodemon .
nodemon app.js

OR
 
./node_modules/nodemon/bin/nodemon.js .
./node_modules/nodemon/bin/nodemon.js app.js

EXPRESS MODULAR ROUTING

index.js

var express = require("express");
var app = express();
var home = require("./home");
var student = require("./student");
var teacher = require("./teacher");

app.use("/", home);
app.use("/student", student);
app.use("/teacher", teacher);

app.use(function (req, res, next) {
  res.status(404);
  res.send("404: File Not Found");
});

app.listen(8989, () => {
  console.log("Listening at port 8989");
});

student.js

const express = require("express");
const router = express.Router();

router
  .route("/")
  .get((req, res) => {
    res.send("student listing");
  })

  .post((req, res) => {
    res.send("student post");
  })

  .put((req, res) => {
    res.send("student put");
  })

  .delete((req, res) => {
    res.send("student delete");
  });

module.exports = router;

teacher.js

const express = require("express");
const router = express.Router();
router
  .route("/")
  .get((req, res) => {
    res.send("teachers listing");
  })
  .post((req, res) => {
    res.send("teachers post");
  })
  .put((req, res) => {
    res.send("teachers put");
  })
  .delete((req, res) => {
    res.send("teachers delete");
  });

module.exports = router;

EXPRESS READ DATA

index.js

const express = require("express");
const app = express();
app.use(express.json());

app
  .route("/")
  .get((req, res) => {
    data = req.query;
    res.send(data);
  })
  .post((req, res) => {
    data = req.body;
    res.send(data);
  })
  .put((req, res) => {
    data = req.body;
    res.send(data);
  });


app.listen(8989, () => {
  console.log("Listening at port 8989");
});

Assignment: WA Web Service to read number from user and return square and cube of that number. Return data in JSON format.

Fetch Api

<table border=1>
	<thead>
		<th>Id</th>
		<th>Name</th>
		<th>Email</th>
		<th>Aavatar</th>
	</thead>
	<tbody id="records">
		<tr>
			<td>sample </td>
			<td>sample</td>
			<td>sample</td>
			<td>sample</td>
		</tr>
	</tbody>

</table>
<img id="image" />
<script>
	url = "https://reqres.in/api/users?page=1";

	fetch(url)
	.then(res => res.json())
	.then(result => {
		console.table(result.data);
		console.log(result.data[0]['avatar'])
		document.getElementById("image").src = result.data[0]['avatar'];
		records = result.data;
		output = '';
		for(i = 0;i<records.length; i++){
			output += `<tr>`
			output += `<td>${records[i]['id']} </td>`
			output += `<td>${records[i]['first_name']} ${records[i]['last_name']}</td>`
			output += `<td>${records[i]['email']}</td>`
			output += `<td><img id="image" src="${records[i]['avatar']}" /></td>`
			output += `</tr>`
			console.log(records[i]['id'])
		}
	document.getElementById("records").innerHTML = output;
	
	})
	
</script>

Express File Upload

//get directory name
console.log(`Project Path: ${__dirname}`);

const express = require("express");
const fileUpload = require("express-fileupload");
const app = express();

//options / middleware
app.use(fileUpload());

app.post("/file_upload", (req, res) => {
	
	console.log(req.body);
	console.log(req.files);
	
	let file_to_upload = req.files.file_to_upload;
	
	//file_to_upload.mv(path,callbackfun);
	const upload_path = __dirname + '/uploads/' + file_to_upload.name;
	//file_to_upload.mv(upload_path);
	
	file_to_upload.mv(upload_path, (err) => {
		if(err) {
			res.status(500)
			res.send(err);
		}
		
		res.status(200)
		res.send("File Upload successfully...")
	})
	
});

app.listen(8989, () => {
	console.log("Listening at port 8989");
})

json webtoken

var jwt = require('jsonwebtoken');
var express = require("express");
var app = express();

username = "admin";
password = "@dmin";

app.use(express.json());

var cors = require('cors')
app.use(cors())

function errorHandler(req, res, next) {
    if (!req.headers.authorization) return res.status(401).send({message:"No token provided"});

    const token = req.headers.authorization.replace("Bearer ","");

    jwt.verify(token, 'shhhhh', function(err) {
        if (err){
            res.status(401).send({message: "unauthorized user"});
        } 
        res.send("jwt token is correct");
    });

    return res.status(500).json({ message: err.message });
}


app.route('/login')
.post((req, res)=>{
    if (username==req.body.username && password == req.body.password){
        var token = jwt.sign({ u_name: username}, 'shhhhh');
        res.send(token);
    }else{
        res.send("wrong creditionals");
    }
    
})

app.use(errorHandler)

app.route('/dashboard')
.get((req,res)=>{
    res.send("dashboard");
})

app.route('/employees')
.get((req,res)=>{
    res.send("emloypee page");
})

app.listen(8080,()=>{
    console.log("listening at 8080")
});

atlas.js

const conn_str = "mongodb+srv://<username>:<password>@clusterurl_obtained_from_mongodbatlas/<databasename>?retryWrites=true&w=majority";
//please replace username password and database name 
const mongoose = require("mongoose");

mongoose.connect(conn_str)
.then(() => console.log("Connected successfully..."))
.catch( (error) => console.log(error) );


const express = require("express");
const app = express();
app.use(express.json());

const empSchema = new mongoose.Schema({});
const emp = new mongoose.model("emps", empSchema);


var cors = require('cors')
app.use(cors())


app.get("/employees", async (req, res) => {
    // var data = [{name: "hari", salary: 25000}, {name: "sameer", salary: 23000}]
    let data = await emp.find();
    res.send(data)
})

app.listen(8989, () => {
	console.log("listening 8989...");
});

index.js

<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-C6RzsynM9kWDrMNeT87bh95OGNyZPhcTNXj1NW7RuBCsyN/o0jlpcV8Qyq46cDfL" crossorigin="anonymous"></script>

<table class="table table-striped">
    <thead>
        <tr>
            <th>Name</th>
            <th>City</th>
            <th>Phone No.</th>
            <th>Salary</th>
            <th>Action</th>
        </tr>
    </thead>
    <tbody id="records"></tbody>
</table>


<script>

url = "http://localhost:8989/employees"

fetch(url)
.then(res => res.json())
.then(res => {
    console.log(res)
    console.table(res)

    output = ''

    for(let i = 0; i < res.length; i++) {

        output += `<tr>
            <td>${res[i]['name']}</td>
            <td>${res[i]['address']}</td>
            <td>${res[i]['contact_number']}</td>
            <td>${res[i]['salary']}</td>
            <td><button class="btn btn-danger">Delete</button></td>
            </tr>`
    }

    document.getElementById("records").innerHTML = output
})

</script>

Leave a Reply

Your email address will not be published. Required fields are marked *