Skip to content

Instantly share code, notes, and snippets.

@teasmade
Created May 2, 2021 07:05
Show Gist options
  • Save teasmade/ea10252dc977ec50f49343b9fe7df1db to your computer and use it in GitHub Desktop.
Save teasmade/ea10252dc977ec50f49343b9fe7df1db to your computer and use it in GitHub Desktop.
Express Quest 3
const connection = require('./db-config');
connection.connect(function (err) {
if (err) {
console.error('error connecting: ' + err.stack);
return;
}
console.log('connected as id ' + connection.threadId);
});
// Express is already installed
const express = require('express');
const app = express();
app.use(express.json());
// Array of movies
const movies = require('./movies');
// In codesandbox we need to use the default port which is 8080
const port = 3000;
app.listen(port, () => {
console.log(`Server is running on ${port}`);
});
app.get('/', (request, response) => {
response.send('Welcome to my favourite movie list');
});
app.get('/api/movies', (request, res) => {
connection.query('SELECT * from movies', (err, results) => {
if (err) {
res.status(500).send('Error retrieving data');
} else {
res.status(200).json(results);
}
});
});
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);
}
});
});
app.get('/api/search', (request, response) => {
const time = request.query.maxDuration;
connection.query('SELECT * from movies WHERE duration<=?', [time], (err, results) => {
if (err) {
console.log(err);
response.status(500).send('Error retrieving data');
} else {
response.status(200).json(results);
}
});
});
app.get('/api/users', (request, response) => {
response.status(401).send('unauthorized you naughty');
});
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, result) => {
if (err) {
res.status(500).send('Error saving the movie');
} else {
res.status(201).send('Movie successfully saved');
}
}
);
});
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, result) => {
if (err) {
res.status(500).send('Error saving the user');
} else {
res.status(201).send('User successfully saved');
}
}
);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment