Untitled
unknown
plain_text
2 years ago
3.5 kB
10
Indexable
/////////////////////////////////////////////////////////////////////
// Requires
/////////////////////////////////////////////////////////////////////
const express = require("express");
const cookieParser = require("cookie-parser");
/////////////////////////////////////////////////////////////////////
// Initialization
/////////////////////////////////////////////////////////////////////
const app = express();
const PORT = 8080;
/////////////////////////////////////////////////////////////////////
// Requires
/////////////////////////////////////////////////////////////////////
app.use(express.urlencoded({ extended: true }));
app.use(cookieParser());
/////////////////////////////////////////////////////////////////////
// Configuration
/////////////////////////////////////////////////////////////////////
app.set("view engine", "ejs");
/////////////////////////////////////////////////////////////////////
// Listener
/////////////////////////////////////////////////////////////////////
app.listen(PORT, () => {
console.log(`Example app listening on port ${PORT}!`);
});
/////////////////////////////////////////////////////////////////////
// "Database"
/////////////////////////////////////////////////////////////////////
const urlDatabase = {
"b2xVn2": "http://www.lighthouselabs.ca",
"9sm5xK": "http://www.google.com",
};
const generateRandomString = function() {
return Math.random().toString(36).substring(2, 8);
};
/////////////////////////////////////////////////////////////////////
// Routes
/////////////////////////////////////////////////////////////////////
app.get("/", (req, res) => {
res.send("Hello!");
});
app.get("/urls.json", (req, res) => {
res.json(urlDatabase);
});
app.get("/hello", (req, res) => {
res.send("<html><body>Hello <b>World</b></body></html>\n");
});
app.get("/urls", (req, res) => {
const templateVars = { urls: urlDatabase };
res.render("urls_index", templateVars);
});
app.get("/urls/new", (req, res) => {
res.render("urls_new");
});
app.get("/urls/:id", (req, res) => {
const id = req.params.id;
const templateVars = {id, longURL: urlDatabase[id]};
res.render("urls_show", templateVars);
});
app.post("/urls", (req, res) => {
const shortID = generateRandomString();
urlDatabase[shortID] = req.body.longURL;
res.redirect(`/urls/${shortID}`);
});
app.get("/u/:id", (req, res) => {
const id = req.params.id;
console.log(urlDatabase[id]);
res.redirect(urlDatabase[id]);
});
// app.get("/set-cookies", (req, res) => {
// res.cookie("Cookie 1", 1);
// res.cookie("Cookie number two", "abc");
// res.cookie("Another Cookie ", "1234 dog");
// res.render("set-cookie");
// });
// app.get("/read-cookie", (req, res) => {
// const cookies = req.cookies;
// const templateVars = {
// cookies: cookies,
// };
// res.render("read-cookie", templateVars);
// });
// app.post("/sign-out", (req, res) => {
// res.clearCookie("username");
// res.redirect("/urls");
// });
// // app.get("/login", (req, res) => {
// // const templateVars = { Username: users[req]
// // }
// // })
// app.post("/login", (req, res) => {
// const username = req.body.username;
// if (username) {
// res.cookie("username", username);
// return res.redirect(`/urls`);
// }
// });
// app.post("urls/:id/delete", (req, res) => {
// const id = req.params.id;
// delete urlDatabase[id];
// res.redirect("/urls");
// });
Editor is loading...