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

@ -1,48 +1,48 @@
var controller = require('express').Router();
var bodyParser = require('body-parser');
var Users = require('../models/users.js');
var Runs = require('../models/run.js');
var controller = require('express').Router(); //require express and create a router (controller)
var bodyParser = require('body-parser'); //body parser takes form data and attaches it to req object
var Users = require('../models/users.js'); //require our Users model
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){
Users.findById(req.session.currentUser.id).then(function(user){
user.getRuns().then(function(runs){
res.json(runs);
controller.get('/', function(req, res){ //route for finding all routes by a the session 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){ //get that user's runs
res.json(runs); //return it the runs in JSON format
});
});
});
controller.post('/', function(req, res){
Users.findById(req.session.currentUser.id).then(function(user){
Runs.create(req.body).then(function(createdRun){
user.addRun(createdRun).then(function(){
res.json(createdRun);
controller.post('/', function(req, res){ //route for creating a new run
Users.findById(req.session.currentUser.id).then(function(user){ //get the user from the DB
Runs.create(req.body).then(function(createdRun){ //create a run from req.body data (JSON)
user.addRun(createdRun).then(function(){ //add the run to the user
res.json(createdRun); //return created run data
});
});;
});
});
controller.delete('/:id', function(req, res){
Runs.destroy({
controller.delete('/:id', function(req, res){ //route for deleting a run
Runs.destroy({ //destroy the run as specified by id in the url
where: {
id: req.params.id
}
}).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(
req.body,
req.body, //change the selected run to match the data passed in through req.body
{
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){
res.json(didSucceed);
res.json(didSucceed); //respond with success status
});
});

@ -1,18 +1,18 @@
var controller = require('express').Router();
var bodyParser = require('body-parser');
var bcrypt = require('bcrypt');
var Users = require('../models/users.js');
var controller = require('express').Router(); //require express and create a router (controller)
var bodyParser = require('body-parser'); //body parser takes form data and attaches it to req object
var bcrypt = require('bcrypt'); //require bcrypt for salting passwords
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){
res.render('users/new.ejs');
controller.get('/new', function(req, res){ //route for showing form for creating a new user
res.render('users/new.ejs'); //render /views/users/new.ejs
});
controller.post('/', function(req, res){
req.body.password = bcrypt.hashSync(req.body.password, bcrypt.genSaltSync(10));
Users.create(req.body).then(function(createdUser){
res.redirect('/');
controller.post('/', function(req, res){ //handles creation of new user
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){ //create a new user with data from req.body
res.redirect('/'); //redirec to home
});
});

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

Loading…
Cancel
Save