You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

76 lines
1.5 KiB

var express = require('express');
var router = express.Router();
var Characters = require('../models/characters.js');
// INDEX
router.get('/', function(req, res) {
res.render('index.ejs', { data: Characters });
});
// NEW
router.get('/new', function(req, res) {
res.render('new.ejs');
});
// SHOW
router.get('/:id', function(req, res) {
for (var i=0; i < Characters.length; i++) {
if (Characters[i].id == req.params.id) {
res.render('show.ejs', { data: Characters[i] });
}
}
});
// EDIT
router.get('/:id/edit', function(req, res) {
for (var i=0; i < Characters.length; i++) {
if (Characters[i].id == req.params.id) {
res.render('edit.ejs', { data: Characters[i] });
}
}
});
// CREATE
router.post('/', function(req, res) {
// code for assigning a new unique id
var max = -Infinity;
for( var i=0; i < Characters.length; i++) {
if( Characters[i].id > max) {
max = Characters[i].id
}
}
req.body.id = max + 1;
// id assigned!
Characters.push(req.body);
res.redirect('/characters');
});
// UPDATE
router.put('/:id', function(req, res) {
req.body.id = parseInt(req.params.id);
for (var i=0; i < Characters.length; i++) {
if (Characters[i].id == req.params.id) {
Characters[i] = req.body;
}
}
res.redirect('/characters');
});
// DELETE
router.delete('/:id', function(req, res) {
for (var i=0; i < Characters.length; i++) {
if (Characters[i].id == req.params.id) {
Characters.splice(i, 1);
}
}
console.log(req.params.id);
res.redirect('/characters');
});
module.exports = router;