diff --git a/models/Movie.mode.js b/models/Movie.mode.js new file mode 100644 index 0000000..58d61cb --- /dev/null +++ b/models/Movie.mode.js @@ -0,0 +1,13 @@ +const mongoose = require('mongoose'); + +const movieSchema = new mongoose.Schema({ + title: String, + director: String, + stars: [String], + image: String, + description: String, + showtimes: [String] +}); + +const Movie = mongoose.model('Movie', movieSchema); +module.exports = Movie; \ No newline at end of file diff --git a/routes/index.js b/routes/index.js index 3647403..b575dc7 100644 --- a/routes/index.js +++ b/routes/index.js @@ -1,7 +1,34 @@ const express = require('express'); const router = express.Router(); +const Movie = require('../models/Movie.model'); -/* GET home page */ -router.get('/', (req, res, next) => res.render('index')); +router.get('/', (req, res, next) => { + res.render('index'); +}); -module.exports = router; +router.get('/movies', (req, res) => { + Movie.find() + .then(movies => { + res.render('movies', { movies }); + }) + .catch(err => { + console.error(err); + res.status(500).send('Error retrieving movies'); + }); +}); + +router.get('/movies/:id', (req, res) => { + Movie.findById(req.params.id) + .then(movie => { + if (!movie) { + return res.status(404).send('Movie not found'); + } + res.render('movie-detail', { movie }); + }) + .catch(err => { + console.error(err); + res.status(500).send('Error retrieving movie'); + }); +}); + +module.exports = router; \ No newline at end of file diff --git a/seeds/movies.seed.js b/seeds/movies.seed.js index 39e1359..5bf3917 100644 --- a/seeds/movies.seed.js +++ b/seeds/movies.seed.js @@ -1,3 +1,6 @@ +const mongoose = require('mongoose'); +const Movie = require('../models/Movie.model'); + const movies = [ { title: "A Wrinkle in Time", @@ -81,9 +84,18 @@ const movies = [ } ]; - -// Add here the script that will be run to actually seed the database (feel free to refer to the previous lesson) - - - -// ... your code here \ No newline at end of file + mongoose.connect('mongodb://localhost/cinema', { useNewUrlParser: true, useUnifiedTopology: true }) + .then(() => { + return Movie.deleteMany(); + }) + .then(() => { + return Movie.insertMany(movies); + }) + .then(() => { + console.log("Database seeded!"); + mongoose.connection.close(); + }) + .catch(err => { + console.error(err); + mongoose.connection.close(); + }); \ No newline at end of file diff --git a/views/index.hbs b/views/index.hbs index 1f308fd..c29c065 100644 --- a/views/index.hbs +++ b/views/index.hbs @@ -1,2 +1,12 @@ -
Welcome to {{title}}
+ + + + +Director: {{movie.director}}
+Description: {{movie.description}}
+Stars: {{#each movie.stars}} {{this}} {{/each}}
+Showtimes: {{#each movie.showtimes}} {{this}} {{/each}}
+ + \ No newline at end of file diff --git a/views/movies.hbs b/views/movies.hbs new file mode 100644 index 0000000..e88775b --- /dev/null +++ b/views/movies.hbs @@ -0,0 +1,19 @@ + + + + +