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
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;
|