Created
May 2, 2021 07:05
-
-
Save teasmade/ea10252dc977ec50f49343b9fe7df1db 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 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