Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --lists.jade--
- extends layout
- block content
- div(id='titlediv')
- h1= title
- if user
- p Welcome #{user.profile.displayName}
- a(href="/logout") Logout
- p choose a list or create a new list
- div
- container
- h3 Lists
- ul
- each list in wishlists
- li
- a(href='/myList') #{list.listTitle}
- form(action='lists/add', method='post')
- input(type='text', id='newList', name="newList", placeholder='New List')
- input(type='hidden',id='userId', name="userId", value='#{user.facebookId}')
- input(type='submit', value='add')
- --lists.js--
- var express = require('express');
- var router = express.Router();
- var passport = require('passport');
- var FacebookStrategy = require('passport-facebook').Strategy;
- var session = require('express-session');
- var mongoose = require('mongoose');
- var User = mongoose.model('User');
- var Wishlist = mongoose.model('Wishlist');
- /* GET home page. */
- router.get('/', function(req, res, next) {
- //how do i make it to show the users wishlist when they are logged in
- if(req.user){
- console.log(req.user.facebookId);
- Wishlist.find({userId: req.user.facebookId},function(err,docs){
- res.locals.error = req.session.error;
- res.locals.success= req.session.success;
- req.session.error = null;
- req.session.success = null;
- Wishlist.findOne({listTitle: "My WishList"}, function(err,list){
- res.locals.error = req.session.error;
- list = JSON.parse(JSON.stringify(list));
- console.log(list);
- res.render('lists', { title: 'Wishy', wishlists: docs, currentlist: list});
- });
- });
- }
- else{
- res.render('index', { title: 'Wishy'});
- }
- });
- router.post('/add', function(req, res, next) {
- console.log("the list "+req.body);
- if(req.body.newList!==""){
- var wishlist = new Wishlist({
- userId: req.body.userId,
- listTitle: req.body.newList
- });
- wishlist.save(function(err){
- if(err){
- console.log(err.message);
- }
- });
- }
- res.redirect('/lists');
- });
- module.exports = router;
- --app.js--
- const express = require('express');
- const path = require('path');
- const logger = require('morgan');
- const cookieParser = require('cookie-parser');
- const bodyParser = require('body-parser');
- const passport = require('passport');
- const favicon = require('serve-favicon');
- const FacebookStrategy = require('passport-facebook').Strategy;
- const session = require('express-session');
- const mongoose = require('mongoose');
- const debug = require('debug')('app');
- const helmet = require('helmet')
- const User = require('./models/User');
- const Wishlist = require('./models/Wishlist.js');
- const routes = require('./routes/index');
- const users = require('./routes/users');
- const lists = require('./routes/lists');
- const myList = require('./routes/myList');
- require('dotenv').config();
- const DB_NAME = process.env.DB_NAME;
- const MONGO_PASS = process.env.MONGO_DB_PASS;
- const MONGO_HOST = process.env.OPENSHIFT_MONGODB_DB_HOST;
- const MONGO_PORT = process.env.OPENSHIFT_MONGODB_DB_PORT;
- if (MONGO_HOST) {
- mongoose.connect(`mongodb://admin:${MONGO_PASS}@${MONGO_HOST}:${MONGO_PORT}/${DB_NAME}`);
- } else {
- mongoose.connect(`mongodb://localhost/${DB_NAME}`);
- }
- const app = express();
- app.use(session({
- secret: process.env.SESSION_SECRET,
- resave: true,
- saveUninitialized: true,
- cookie: { maxAge: 600000 } //10 minutes
- }));
- app.use(passport.initialize());
- app.use(passport.session());
- app.get('*', (req, res, next) => {
- if (req.user) {
- req.session.userId = req.user.facebookId;
- res.locals.user = req.user; // eslint-disable-line no-param-reassign
- }
- next();
- });
- app.use('/', routes);
- app.use('/users', users);
- app.use('/lists', lists);
- app.use('/myList', myList);
- passport.use(new FacebookStrategy({
- clientID: process.env.FACEBOOK_APP_ID,
- clientSecret: process.env.FACEBOOK_APP_SECRET,
- callbackURL: process.env.FACEBOOK_CALLBACK_URL,
- }, (accessToken, refreshToken, profile, cb) => {
- User.findOne({ facebookId: profile.id }, (err, user) => {
- if (err) {
- cb(err);
- } else if (user) {
- cb(err, user);
- }
- const newUser = new User({
- facebookId: profile.id,
- profile,
- });
- newUser.save((newUserError) => {
- if (newUserError) {
- cb(newUserError);
- } else {
- cb(null, newUser);
- }
- });
- });
- }));
- passport.serializeUser((user, cb) => cb(null, user._id)); // eslint-disable-line
- passport.deserializeUser((id, cb) => {
- User.findOne(id, (err, user) => {
- if (err) {
- cb(err);
- } else {
- cb(null, user);
- }
- });
- });
- // view engine setup
- app.set('views', path.join(__dirname, 'views'));
- app.set('view engine', 'jade');
- app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
- app.use(logger('dev'));
- app.use(bodyParser.json());
- app.use(bodyParser.urlencoded({ extended: false }));
- app.use(cookieParser());
- app.use(express.static(path.join(__dirname, './public')));
- // catch 404 and forward to error handler
- app.use((req, res, next) => {
- const err = new Error('Not Found');
- err.status = 404;
- next(err);
- });
- app.use((err, req, res) => {
- res.status(err.status || 500);
- res.render('error', {
- message: err.message,
- error: (app.get('env') === 'development') ? err : {},
- });
- });
- module.exports = app;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement