Created
December 7, 2020 22:29
-
-
Save gaetan-cordonnier/51b082ca541b217b6365ba2dc4530df1 to your computer and use it in GitHub Desktop.
Express Quest #3
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const express = require("express"); | |
const movies = require("./movies"); | |
const connection = require("./config"); | |
const port = 3000; | |
const app = express(); | |
// connexion à la Database | |
connection.connect(function (err) { | |
if (err) { | |
console.error("error connecting: " + err.stack); | |
return; | |
} | |
console.log("connected as id " + connection.threadId); | |
}); | |
// utilisation du middleware pour lire un json par la requête body | |
app.use(express.json()); | |
// route Main | |
app.get("/", (req, res) => { | |
res.send("Welcome to my favorite movie list"); | |
}); | |
// renvoyer tous les movies | |
app.get("/api/movies", (req, res) => { | |
connection.query("SELECT * from movies", (err, results) => { | |
if (err) { | |
console.log(err); | |
res.status(500).send("Error retrieving data"); | |
} else { | |
res.status(200).json(results); | |
} | |
}); | |
}); | |
// renvoyer tous les movies par id | |
app.get("/api/movies/:id", (req, res) => { | |
connection.query( | |
"SELECT * from movies WHERE id=?", | |
[req.params.id], | |
(err, results) => { | |
if (err) { | |
console.log(err); | |
res.status(500).send("Error retrieving data"); | |
} else { | |
res.status(200).json(results); | |
} | |
} | |
); | |
}); | |
// rechercher tous les movies par durée | |
app.get("/api/search", (req, res) => { | |
connection.query( | |
"SELECT * from movies WHERE duration<=?", | |
[req.query.durationMax], | |
(err, results) => { | |
if (err) { | |
console.log(err); | |
res.status(500).send("No movies found for this duration"); | |
} else { | |
res.status(200).json(results); | |
} | |
} | |
); | |
}); | |
// créer nouveau movie dans la Database | |
app.post("/api/movies", (req, res) => { | |
const { title, director, year, color, duration } = req.body; | |
connection.query( | |
"INSERT INTO movies(title, director, year, color, duration) VALUES(?, ?, ?, ?, ?)", | |
[title, director, year, color, duration], | |
(err, results) => { | |
if (err) { | |
console.log(err); | |
res.status(500).send("Error saving a movie"); | |
} else { | |
res.status(200).send("Successfully saved"); | |
} | |
} | |
); | |
}); | |
// renvoyer tous les users | |
app.get("/api/users", (req, res) => { | |
connection.query("SELECT * from users", (err, results) => { | |
if (err) { | |
console.log(err); | |
res.status(500).send("Error retrieving data"); | |
} else { | |
res.status(200).json(results); | |
} | |
}); | |
}); | |
// créer nouveau movie dans la Database | |
app.post("/api/users", (req, res) => { | |
const { firstname, lastname, email } = req.body; | |
connection.query( | |
"INSERT INTO users(firstname, lastname, email) VALUES(?, ?, ?)", | |
[firstname, lastname, email], | |
(err, results) => { | |
if (err) { | |
console.log(err); | |
res.status(500).send("Error saving a user"); | |
} else { | |
res.status(200).send("Successfully saved"); | |
} | |
} | |
); | |
}); | |
app.listen(port, () => { | |
console.log(`Server is runing on 3000`); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment