Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var express = require('express');
- var session = require('express-session');
- var mongoose = require('mongoose');
- var multer = require('multer');
- var passport = require('passport');
- var LocalStrategy = require('passport-local').Strategy;
- var passportLocalMongoose = require('passport-local-mongoose');
- var app = express();
- var uploadDir = __dirname + '/uploads';
- var uploadDirContact = __dirname + '/ContactUploads';
- var bodyParser = require('body-parser');
- var isAuthenticated = function (req, res, next) {
- if (req.isAuthenticated())
- return next();
- res.redirect('/');
- }
- mongoose.connect('mongodb://orion:orion@127.0.0.1:27017/test');
- var Schema = mongoose.Schema;
- var contactSchema = new Schema({
- name: String,
- phone: String,
- email: String,
- photo: String
- });
- var userSchema = new Schema({
- name: String,
- email: String,
- password: String,
- pp: String,
- contacts: [contactSchema]
- });
- var users = mongoose.model('users', userSchema);
- var contacts = mongoose.model('contact', contactSchema);
- var port = process.env.PORT || 3000;
- app.set('views', './views');
- app.set('view engine', 'jade');
- app.use('/assets', express.static(__dirname + '/public'));
- app.use('/contactPhotos',express.static(__dirname + '/ContactUploads'));
- app.use('/pp',express.static(__dirname + '/uploads'));
- app.use(bodyParser.urlencoded({extended: false}));
- app.use(bodyParser.json());
- app.use(session({secret: 'supernova', saveUninitialized: true, resave: true}));
- app.use(passport.initialize());
- app.use(passport.session());
- passport.use(new LocalStrategy(
- {
- usernameField: 'email'
- }, function (email, password, done) {
- users.findOne({email: email}, function (err, user) {
- if (err) {
- return done(err);
- }
- if (!err) {
- console.log(user);
- }
- if (!user) {
- return done(null, false, {message: 'Incorrect username.'});
- }
- if (user.password != password) {
- return done(null, false, {message: 'Invalid password'});
- }
- return done(null, user);
- });
- }));
- passport.serializeUser(function (user, done) {
- done(null, user._id);
- });
- passport.deserializeUser(function (id, done) {
- users.findById(id, function (err, user) {
- done(err, user);
- });
- });
- app.all('/', function (req, res) {
- res.render('login');
- })
- app.all('/register', function (req, res) {
- res.render('register');
- })
- app.all('/login', function (req, res) {
- res.redirect('/');
- })
- var pp = Date.now() + '.jpg';
- var storage = multer.diskStorage({
- destination: function (request, file, callback) {
- callback(null, uploadDir);
- },
- filename: function (request, file, callback) {
- console.log(file);
- callback(null, pp);
- }
- });
- var contactPhotoStorage = multer.diskStorage({
- destination: function (request, file, callback) {
- callback(null, uploadDirContact);
- },
- filename: function (request, file, callback) {
- console.log(file);
- callback(null, pp);
- }
- });
- var upload = multer({storage: storage}).single('proPic');
- var contactPhoto = multer({storage: contactPhotoStorage}).single('photo');
- app.all('/doReg', upload, function (request, response) {
- var user = users({
- 'name': request.body.name,
- 'email': request.body.email,
- 'password': request.body.password,
- 'pp': pp
- })
- user.save(function (err) {
- if (err) throw err;
- });
- var url = request.protocol + '://' + request.get('host') + '/login'
- response.writeHead(301,
- {Location: url}
- );
- response.end();
- });
- app.all('/doLogin', passport.authenticate('local', {
- successRedirect: '/home',
- failureRedirect: '/'
- }), function (req, res) {
- console.log(req.body)
- });
- app.get('/home', isAuthenticated, function (req, res) {
- res.render('home', {serverUser: req.user});
- });
- app.post('/home', contactPhoto, function (req, res) {
- var contact = contacts({
- 'name': req.body.name,
- 'email': req.body.email,
- 'phone': req.body.phone,
- 'photo': pp
- });
- console.log(contact);
- users.update({"_id": req.user._id},
- {$push: {"contacts": contact}},
- function (err, numAffected) {
- if (err) {
- console.log('error saving contact!')
- }
- else {
- console.log('success saving contact!')
- }
- });
- res.redirect(req.get('referer'));
- });
- app.get('/logout', function (req, res){
- req.session.destroy(function (err) {
- res.redirect('/');
- });
- });
- app.listen(port);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement