commenting for server.js and controllers

master
Matt Huntington 9 years ago
parent 439925e4d5
commit 995f1e15f0

@ -1,32 +1,32 @@
var controller = require('express').Router(); var controller = require('express').Router(); //require express and create a router (controller)
var bcrypt = require('bcrypt'); var bcrypt = require('bcrypt'); //require bcrypt for comparing passwords
var methodOverride = require('method-override'); var methodOverride = require('method-override'); //method override is used for create delete and put methods on forms
var bodyParser = require('body-parser'); var bodyParser = require('body-parser'); //body parser takes form data and attaches it to req object
var Users = require('../models/users.js'); var Users = require('../models/users.js'); //require our Users model
controller.use(bodyParser.urlencoded({ extended: false })); controller.use(bodyParser.urlencoded({ extended: false })); //tell body parser that we'll be passing in form data
controller.use(methodOverride('_method')); controller.use(methodOverride('_method')); //tell method override to expect ?method=PUT/DELETE attached to POST requests
controller.get('/new', function(req, res){ controller.get('/new', function(req, res){ //GET request to /new show form for creating a new login session
res.render('logins/new.ejs'); res.render('logins/new.ejs'); //render logins/new.ejs
}); });
controller.post('/', function(req, res){ controller.post('/', function(req, res){ //handles request to log in
Users.findOne({ Users.findOne({ //find a user whose name is req.body.username (from form)
where: { where: {
username:req.body.username username:req.body.username
} }
}).then(function(foundUser){ }).then(function(foundUser){ //once found
if(bcrypt.compareSync(req.body.password, foundUser.password)){ if(bcrypt.compareSync(req.body.password, foundUser.password)){ //compare password passed in through request to what's in the DB
req.session.currentUser = foundUser; req.session.currentUser = foundUser; //if they match, set the session variable
} }
res.redirect('/'); res.redirect('/'); //redirect to home
}); });
}); });
controller.delete('/', function(req, res){ controller.delete('/', function(req, res){ //logout route
req.session.destroy(function(){ req.session.destroy(function(){ //destroy the session
res.redirect('/'); res.redirect('/'); //redirect to home
}); });
}); });

@ -1,48 +1,48 @@
var controller = require('express').Router(); var controller = require('express').Router(); //require express and create a router (controller)
var bodyParser = require('body-parser'); var bodyParser = require('body-parser'); //body parser takes form data and attaches it to req object
var Users = require('../models/users.js'); var Users = require('../models/users.js'); //require our Users model
var Runs = require('../models/run.js'); var Runs = require('../models/run.js'); //require our Runs model
controller.use(bodyParser.json()); controller.use(bodyParser.json()); //anything handled by this controller is expecting JSON data, not form data
controller.get('/', function(req, res){ controller.get('/', function(req, res){ //route for finding all routes by a the session user
Users.findById(req.session.currentUser.id).then(function(user){ Users.findById(req.session.currentUser.id).then(function(user){ //find the user in the DB who's ID matches that of the session users
user.getRuns().then(function(runs){ user.getRuns().then(function(runs){ //get that user's runs
res.json(runs); res.json(runs); //return it the runs in JSON format
}); });
}); });
}); });
controller.post('/', function(req, res){ controller.post('/', function(req, res){ //route for creating a new run
Users.findById(req.session.currentUser.id).then(function(user){ Users.findById(req.session.currentUser.id).then(function(user){ //get the user from the DB
Runs.create(req.body).then(function(createdRun){ Runs.create(req.body).then(function(createdRun){ //create a run from req.body data (JSON)
user.addRun(createdRun).then(function(){ user.addRun(createdRun).then(function(){ //add the run to the user
res.json(createdRun); res.json(createdRun); //return created run data
}); });
});; });;
}); });
}); });
controller.delete('/:id', function(req, res){ controller.delete('/:id', function(req, res){ //route for deleting a run
Runs.destroy({ Runs.destroy({ //destroy the run as specified by id in the url
where: { where: {
id: req.params.id id: req.params.id
} }
}).then(function(didSucceed){ }).then(function(didSucceed){
res.json(didSucceed); res.json(didSucceed); //send back if it succeeded
}); });
}); });
controller.put('/:id', function(req, res){ controller.put('/:id', function(req, res){ //alter a run
Runs.update( Runs.update(
req.body, req.body, //change the selected run to match the data passed in through req.body
{ {
where: { where: {
id: req.params.id id: req.params.id //id of run in the db must match the id in the url
} }
} }
).then(function(didSucceed){ ).then(function(didSucceed){
res.json(didSucceed); res.json(didSucceed); //respond with success status
}); });
}); });

@ -1,18 +1,18 @@
var controller = require('express').Router(); var controller = require('express').Router(); //require express and create a router (controller)
var bodyParser = require('body-parser'); var bodyParser = require('body-parser'); //body parser takes form data and attaches it to req object
var bcrypt = require('bcrypt'); var bcrypt = require('bcrypt'); //require bcrypt for salting passwords
var Users = require('../models/users.js'); var Users = require('../models/users.js'); //require our Users model
controller.use(bodyParser.urlencoded({ extended: false })) controller.use(bodyParser.urlencoded({ extended: false })) //tell body parser that we'll be passing in form data
controller.get('/new', function(req, res){ controller.get('/new', function(req, res){ //route for showing form for creating a new user
res.render('users/new.ejs'); res.render('users/new.ejs'); //render /views/users/new.ejs
}); });
controller.post('/', function(req, res){ controller.post('/', function(req, res){ //handles creation of new user
req.body.password = bcrypt.hashSync(req.body.password, bcrypt.genSaltSync(10)); req.body.password = bcrypt.hashSync(req.body.password, bcrypt.genSaltSync(10)); //change req.body.password be the an encrypted version of itself
Users.create(req.body).then(function(createdUser){ Users.create(req.body).then(function(createdUser){ //create a new user with data from req.body
res.redirect('/'); res.redirect('/'); //redirec to home
}); });
}); });

@ -1,24 +1,24 @@
var express = require('express'); var express = require('express'); //include express package
var session = require('express-session'); var session = require('express-session'); //include express sessions for session work
var app = express(); var app = express(); // create an express app
var PORT = process.env.PORT || 3000; var PORT = process.env.PORT || 3000; //define the port to be either the environment variable, or 3000
app.use(session({ app.use(session({ //setting up session encryption info
secret: "seakrett", secret: "seakrett", //unique keyword for encrypting session data
resave: false, resave: false, // don't resave session if nothing changed
saveUninitialized: false saveUninitialized: false //even if no data, set a cookie
})); }));
app.use(express.static('public')); app.use(express.static('public')); //set up a static asset dir in /public
app.get('/', function(req, res){ app.get('/', function(req, res){ // route for /
res.render('index.ejs', { res.render('index.ejs', { // render /views/index.ejs
currentUser: req.session.currentUser currentUser: req.session.currentUser //pass in session currentUser var to view
}); });
}); });
var runsController = require('./controllers/runs.js'); var runsController = require('./controllers/runs.js'); //require runsController
app.use('/runs/', runsController); app.use('/runs/', runsController); //use it for anything starting with /runs
var usersController = require('./controllers/users.js'); var usersController = require('./controllers/users.js');
app.use('/users/', usersController); app.use('/users/', usersController);
@ -26,6 +26,6 @@ app.use('/users/', usersController);
var loginsController = require('./controllers/logins.js'); var loginsController = require('./controllers/logins.js');
app.use('/logins/', loginsController); app.use('/logins/', loginsController);
app.listen(PORT, function(){ app.listen(PORT, function(){ //start the server
console.log('listening on port ' + PORT); console.log('listening on port ' + PORT);
}); });

Loading…
Cancel
Save