-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.js
More file actions
119 lines (98 loc) · 3.38 KB
/
app.js
File metadata and controls
119 lines (98 loc) · 3.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
const express = require("express");
const bodyParser = require("body-parser");
const date = require(__dirname + "/date.js");
const mysql = require("mysql");
const dotenv = require("dotenv");
const _ = require("lodash");
const app = express();
const Connection = require("mysql/lib/Connection");
const { CLIENT_MULTI_RESULTS } = require("mysql/lib/protocol/constants/client");
dotenv.config({ path: __dirname + "/.env" });
app.set('view engine', 'ejs');
app.use(bodyParser.urlencoded({ "extended": "true" }));
app.use(express.static("public"));
const db = mysql.createConnection({
host: process.env.DB_HOST,
user: process.env.DB_USER,
password: process.env.DB_PASS,
database: process.env.DB
});
db.connect(async(err) => {
if (err) throw err;
console.log("Database Connected...");
// db.query("CREATE DATABASE IF NOT EXISTS todolist", (err, result) => {
// if (err) throw err;
});
const item = "CREATE TABLE IF NOT EXISTS items (id INT AUTO_INCREMENT PRIMARY KEY ,item_name VARCHAR(255) NOT NULL )";
db.query(item, (err, result) => {
if (!err){
console.log("items generated")
}
});
// });
app.get("/", async (req, res, next) => {
let dates = date.getDate();
db.query("SELECT * FROM items", (err, result) => {
if (err) throw err;
// console.log(result)
res.render('list', { listTitle: dates, newListItems: result });
});
})
app.get("/:customListName", (req, res) => {
const customListName = _.capitalize(req.params.customListName);
const customItem = "CREATE TABLE IF NOT EXISTS " + customListName + " (id INT AUTO_INCREMENT PRIMARY KEY ,item_name VARCHAR(255) NOT NULL )";
db.query(customItem, (err, result) => {
if (!err) {
db.query("SELECT * FROM " + customListName, (err, result) => {
if (!err) {
res.render('list', { listTitle: customListName, newListItems: result });
}
})
}
})
})
app.post("/", async (req, res) => {
const userItem = req.body.newItem;
const listName = req.body.list;
let dates = date.getDate();
// console.log(req.body.list);
if (listName === dates) {
var items = ("INSERT INTO items (item_name) VALUES ('" + userItem + "')")
db.query(items, (err, result) => {
if (err) throw err;
// console.log("Items Inserted Into Table");
})
res.redirect("/");
} else {
var customItems = ("INSERT INTO " + listName + "(item_name) VALUES ('" + userItem + "')")
db.query(customItems, (err, result) => {
if (err) throw err;
// console.log("Items Inserted Into Table")
})
res.redirect("/" + listName);
}
})
app.post("/delete", async (req, res) => {
const checkedItemId = req.body.checkbox;
const listName = req.body.listName;
let dates = date.getDate();
if (listName === dates) {
var deleteItem = ("DELETE FROM items WHERE id = " + checkedItemId);
db.query(deleteItem, (err, result) => {
if (err) throw err;
// console.log("checked Item Deleted")
})
res.redirect("/");
} else {
var deleteItem = ("DELETE FROM " + listName + " WHERE id = " + checkedItemId);
db.query(deleteItem, (err, result) => {
if (err) throw err;
// console.log("checked Item Deleted")
})
res.redirect("/" + listName);
// console.log(checkedItemId)
}
})
app.listen(process.env.PORT || 3000, function(){
console.log("Express server listening on port %d in %s mode", this.address().port, app.settings.env);
});