Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 16 additions & 1 deletion 02-express-tutorial/app.js
Original file line number Diff line number Diff line change
@@ -1 +1,16 @@
console.log('Express Tutorial')
const express = require("express");
const app = express();

app.get("/", (req, res) => {
const method = req.method;

res.send("Home");
});

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

app.listen(5000, () => {
console.log("server is listening to port");
});
13 changes: 13 additions & 0 deletions 02-express-tutorial/authorize.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
const authorize = (req, res, next) => {
const { user } = req.query;
if (user === "vini") {
// adding a property of user to req object
req.user = { name: "vini", id: "4" };
next();
} else {
res.status(401).send("Unauthorised");
}

next();
};
module.exports = authorize;
47 changes: 24 additions & 23 deletions 02-express-tutorial/final/01-http-basics.js
Original file line number Diff line number Diff line change
@@ -1,26 +1,27 @@
const http = require('http')
const http = require("http");

const server = http.createServer((req, res) => {
// console.log(req.method)
const url = req.url
// home page
if (url === '/') {
res.writeHead(200, { 'content-type': 'text/html' })
res.write('<h1>home page</h1>')
res.end()
}
// about page
else if (url === '/about') {
res.writeHead(200, { 'content-type': 'text/html' })
res.write('<h1>about page</h1>')
res.end()
}
// 404
else {
res.writeHead(404, { 'content-type': 'text/html' })
res.write('<h1>page not found</h1>')
res.end()
}
})
// console.log(req.method)
// console.log(req.url)
const url = req.url;
// home page
if (url === "/") {
res.writeHead(200, { "content-type": "text/html" });
res.write("<h1>home page</h1>");
res.end();
}
// about page
else if (url === "/about") {
res.writeHead(200, { "content-type": "text/html" });
res.write("<h1>about page</h1>");
res.end();
}
// 404
else {
res.writeHead(404, { "content-type": "text/html" });
res.write("<h1>page not found</h1>");
res.end();
}
});

server.listen(5000)
server.listen(5000);
30 changes: 18 additions & 12 deletions 02-express-tutorial/final/04-express-app.js
Original file line number Diff line number Diff line change
@@ -1,19 +1,25 @@
const express = require('express')
const path = require('path')
const express = require("express");

const app = express()
// to get absolute path of the file
const path = require("path");

const app = express();

// setup static and middleware
app.use(express.static('./public'))
/*
app.use() is used to set up middleware. express.static is a built in middleware.
static assets are files that server doen't have to change , example image files,CSS files
*/
app.use(express.static("./public"));

app.get('/', (req, res) => {
res.sendFile(path.resolve(__dirname, './navbar-app/index.html'))
})
app.get("/", (req, res) => {
res.sendFile(path.resolve(__dirname, "./navbar-app/index.html"));
});

app.all('*', (req, res) => {
res.status(404).send('resource not found')
})
app.all("*", (req, res) => {
res.status(404).send("resource not found");
});

app.listen(5000, () => {
console.log('server is listening on port 5000....')
})
console.log("server is listening on port 5000....");
});
17 changes: 9 additions & 8 deletions 02-express-tutorial/final/06-basic-json.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
const express = require('express')
const app = express()
const { products } = require('./data')
app.get('/', (req, res) => {
res.json(products)
})
const express = require("express");
// invoke express
const app = express();
const { products } = require("./data");
app.get("/", (req, res) => {
res.json(products);
});

app.listen(5000, () => {
console.log('Server is listening on port 5000....')
})
console.log("Server is listening on port 5000....");
});
40 changes: 20 additions & 20 deletions 02-express-tutorial/final/09-middleware-use.js
Original file line number Diff line number Diff line change
@@ -1,24 +1,24 @@
const express = require('express')
const app = express()
const logger = require('./logger')
const authorize = require('./authorize')
const express = require("express");
const app = express();
const logger = require("./logger");
const authorize = require("./authorize");
// req => middleware => res
app.use([logger, authorize])
app.use([logger, authorize]);
// api/home/about/products
app.get('/', (req, res) => {
res.send('Home')
})
app.get('/about', (req, res) => {
res.send('About')
})
app.get('/api/products', (req, res) => {
res.send('Products')
})
app.get('/api/items', (req, res) => {
console.log(req.user)
res.send('Items')
})
app.get("/", (req, res) => {
res.send("Home");
});
app.get("/about", (req, res) => {
res.send("About");
});
app.get("/api/products", (req, res) => {
res.send("Products");
});
app.get("/api/items", (req, res) => {
console.log(req.user);
res.send("Items");
});

app.listen(5000, () => {
console.log('Server is listening on port 5000....')
})
console.log("Server is listening on port 5000....");
});
45 changes: 24 additions & 21 deletions 02-express-tutorial/final/10-middleware-options.js
Original file line number Diff line number Diff line change
@@ -1,28 +1,31 @@
const express = require('express')
const app = express()
const morgan = require('morgan')
const logger = require('./logger')
const authorize = require('./authorize')
const express = require("express");
const app = express();
const morgan = require("morgan");
const logger = require("./logger");
const authorize = require("./authorize");
// req => middleware => res

// 1. use vs route
// 2. options - our own/express/ third party middle wares

// app.use([logger, authorize])
// app.use(express.static('./public'))
app.use(morgan('tiny'))
app.use(morgan("tiny"));

app.get('/', (req, res) => {
res.send('Home')
})
app.get('/about', (req, res) => {
res.send('About')
})
app.get('/api/products', (req, res) => {
res.send('Products')
})
app.get('/api/items', (req, res) => {
console.log(req.user)
res.send('Items')
})
app.get("/", (req, res) => {
res.send("Home");
});
app.get("/about", (req, res) => {
res.send("About");
});
app.get("/api/products", (req, res) => {
res.send("Products");
});
app.get("/api/items", (req, res) => {
console.log(req.user);
res.send("Items");
});

app.listen(5000, () => {
console.log('Server is listening on port 5000....')
})
console.log("Server is listening on port 5000....");
});
131 changes: 66 additions & 65 deletions 02-express-tutorial/final/11-methods.js
Original file line number Diff line number Diff line change
@@ -1,80 +1,81 @@
const express = require('express')
const app = express()
let { people } = require('./data')
const express = require("express");
const app = express();
let { people } = require("./data");

// static assets
app.use(express.static('./methods-public'))
// express.static is a built in middleware
app.use(express.static("./methods-public"));
// parse form data
app.use(express.urlencoded({ extended: false }))
app.use(express.urlencoded({ extended: false }));
// parse json
app.use(express.json())
app.use(express.json());

app.get('/api/people', (req, res) => {
res.status(200).json({ success: true, data: people })
})
app.get("/api/people", (req, res) => {
res.status(200).json({ success: true, data: people });
});

app.post('/api/people', (req, res) => {
const { name } = req.body
if (!name) {
return res
.status(400)
.json({ success: false, msg: 'please provide name value' })
}
res.status(201).json({ success: true, person: name })
})
app.post("/api/people", (req, res) => {
const { name } = req.body;
if (!name) {
return res
.status(400)
.json({ success: false, msg: "please provide name value" });
}
res.status(201).json({ success: true, person: name });
});

app.post('/api/postman/people', (req, res) => {
const { name } = req.body
if (!name) {
return res
.status(400)
.json({ success: false, msg: 'please provide name value' })
}
res.status(201).json({ success: true, data: [...people, name] })
})
app.post("/api/postman/people", (req, res) => {
const { name } = req.body;
if (!name) {
return res
.status(400)
.json({ success: false, msg: "please provide name value" });
}
res.status(201).json({ success: true, data: [...people, name] });
});

app.post('/login', (req, res) => {
const { name } = req.body
if (name) {
return res.status(200).send(`Welcome ${name}`)
}
app.post("/login", (req, res) => {
const { name } = req.body;
if (name) {
return res.status(200).send(`Welcome ${name}`);
}

res.status(401).send('Please Provide Credentials')
})
res.status(401).send("Please Provide Credentials");
});

app.put('/api/people/:id', (req, res) => {
const { id } = req.params
const { name } = req.body
app.put("/api/people/:id", (req, res) => {
const { id } = req.params;
const { name } = req.body;

const person = people.find((person) => person.id === Number(id))
const person = people.find((person) => person.id === Number(id));

if (!person) {
return res
.status(404)
.json({ success: false, msg: `no person with id ${id}` })
}
const newPeople = people.map((person) => {
if (person.id === Number(id)) {
person.name = name
}
return person
})
res.status(200).json({ success: true, data: newPeople })
})
if (!person) {
return res
.status(404)
.json({ success: false, msg: `no person with id ${id}` });
}
const newPeople = people.map((person) => {
if (person.id === Number(id)) {
person.name = name;
}
return person;
});
res.status(200).json({ success: true, data: newPeople });
});

app.delete('/api/people/:id', (req, res) => {
const person = people.find((person) => person.id === Number(req.params.id))
if (!person) {
return res
.status(404)
.json({ success: false, msg: `no person with id ${req.params.id}` })
}
const newPeople = people.filter(
(person) => person.id !== Number(req.params.id)
)
return res.status(200).json({ success: true, data: newPeople })
})
app.delete("/api/people/:id", (req, res) => {
const person = people.find((person) => person.id === Number(req.params.id));
if (!person) {
return res
.status(404)
.json({ success: false, msg: `no person with id ${req.params.id}` });
}
const newPeople = people.filter(
(person) => person.id !== Number(req.params.id),
);
return res.status(200).json({ success: true, data: newPeople });
});

app.listen(5000, () => {
console.log('Server is listening on port 5000....')
})
console.log("Server is listening on port 5000....");
});
9 changes: 9 additions & 0 deletions 02-express-tutorial/logger.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
const logger = (req, res, next) => {
const method = req.method;
const url = req.url;
const time = new Date().getFullYear();
console.log(method, url, time);
next();
};

module.exports = logger;
Loading