Skip to content

Instantly share code, notes, and snippets.

@gaetan-cordonnier
Created December 7, 2020 22:29
Show Gist options
  • Save gaetan-cordonnier/51b082ca541b217b6365ba2dc4530df1 to your computer and use it in GitHub Desktop.
Save gaetan-cordonnier/51b082ca541b217b6365ba2dc4530df1 to your computer and use it in GitHub Desktop.
Express Quest #3
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