Express JS中的会话

时间:2019-08-19 07:35:31

标签: express session

我创建了一个示例网站,我正在使用带有会话的Express js。登录后,当我首先去参考朋友链接时,我看到了用户的参考ID和使用我的链接进行注册的用户列表,当我进入主页,然后进入菜单栏中的事件菜单,然后我去了引用该页面中的朋友链接,会话将被取消。

我找不到正确的道路来帮助我。

该网站的网址为:beingevent.com

//app.js

var express = require('express'),
app = module.exports = express();
var session = require('express-session');
app.use(session({ secret: 'ssshhhhh' }));

app.engine('.html', require('ejs').__express);
app.use(express.static(__dirname + '/public'));

bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json())
var flash = require('express-flash');
app.use(flash());

app.set('view engine', 'html');
app.set('views', __dirname + '/views');



require('./controller/login')(app);
require('./controller/event')(app);
require('./controller/product')(app);
// require('./controller/eventica')(app);
require('./controller/details')(app);
require('./controller/merchantview')(app);
require('./controller/eventhistory')(app);
require('./controller/news')(app);
require('./controller/historydetails')(app);
require('./controller/referral')(app);
require('./controller/newsdetails')(app);

global.ethToUSD = 0;
global.btcToUSD = 0;
global.eth = 0;
global.btc = 0;
global.finalbtc = 0;
currency = "USD"; 

var request = require("request");
  // var defaultEth = 225;
  // var defaultBTC = 6500; 

  var url = "https://min-api.cryptocompare.com/data/price?fsym="+currency+"&tsyms="+"ETH,BTC";
  console.log(url);

  function thousands_separators(num)
  {
    var num_parts = num.toString().split(".");
    num_parts[0] = num_parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",");
    return num_parts.join(".");
  }


  request(url, function(error, response, body) {
      // if(funcs.isEmpty(body)) {
      //       ethToUSD = 1;
      //       console.log("Netowrk connection problem or service returned null. So, the conversion value is set to 1 ")
      //     } else {
              body = JSON.parse(body);  
              btcToUSD = 1/body["BTC"];
              btc=(Math.floor(btcToUSD * 100) / 100).toFixed();
              // btc.toLocaleString('en', {maximumSignificantDigits : 21})
            //  btc=(Math.floor(btcToUSD * 100) / 100).toPrecision(5);
             finalbtc=thousands_separators(btc);
              ethToUSD = 1/body["ETH"];
              eth=(Math.floor(ethToUSD * 100) / 100).toFixed();
            //  eth=(Math.floor(ethToUSD * 100) / 100).toPrecision(3);

              // ethToUSD = ethToUSD > defaultEth ? ethToUSD : defaultEth;
              // btcToUSD =  btcToUSD > defaultBTC ?  btcToUSD : defaultBTC;
              console.log("1 ETH = ",  ethToUSD," ",currency);
              console.log("1 BTC = ",  btcToUSD," ",currency);
               console.log("2 ETH = ",  eth," ",currency);
              console.log("2 BTC = ",  btc," ",currency);
              console.log("1 ETH = ",  eth," ",currency);
              console.log("1 BTC = ",  finalbtc," ",currency);
      // }
});



// app.set('view engine', 'ejs');
// Require body-parser (to receive post data from clients)
// var config = require('/config');
// require('./models').connect(config.get('db'));
const User = require('./models/User.js');
// const Ticket=require('./models/ticket.js');

const mongoose = require('mongoose')
const path = require('path');
const port = 443
const fs = require('fs')
const https = require('https')

mongoose.connect('mongodb://admin:admin123@ds343887.mlab.com:43887/eventica', {
  useNewUrlParser: true
}, (err, client) => {
  if (err) throw err;

  else {

    console.log("mongodb connected")
  }
})


if (!module.parent) {
  server = app.listen(80)
  console.log('Running in port 80');

  // server = https.createServer({
  //   key: fs.readFileSync('/etc/letsencrypt/live/beingevent.com/privkey.pem', 'utf8'),
  //   cert: fs.readFileSync('/etc/letsencrypt/live/beingevent.com/fullchain.pem', 'utf8')
  // }, app).listen(port, () => {
  //   console.log('Listening... 443')
  // })
}


io = require('socket.io').listen(server);

app.get('/', function (req, res) {
  var url = "https://min-api.cryptocompare.com/data/price?fsym="+currency+"&tsyms="+"ETH,BTC";
  console.log(url);

  function thousands_separators(num)
  {
    var num_parts = num.toString().split(".");
    num_parts[0] = num_parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",");
    return num_parts.join(".");
  }


  request(url, function(error, response, body) {
      // if(funcs.isEmpty(body)) {
      //       ethToUSD = 1;
      //       console.log("Netowrk connection problem or service returned null. So, the conversion value is set to 1 ")
      //     } else {
              body = JSON.parse(body);  
              btcToUSD = 1/body["BTC"];
              // btc=(Math.floor(btcToUSD * 100) / 100).toFixed();
              // btc.toLocaleString('en', {maximumSignificantDigits : 21})
             btc=((Math.floor(btcToUSD * 100) / 100).toPrecision(5)).toLocaleString();
             finalbtc=thousands_separators(btc);
              ethToUSD = 1/body["ETH"];
              // eth=(Math.floor(ethToUSD * 100) / 100).toFixed();
             eth=(Math.floor(ethToUSD * 100) / 100).toPrecision(3);

              // ethToUSD = ethToUSD > defaultEth ? ethToUSD : defaultEth;
              // btcToUSD =  btcToUSD > defaultBTC ?  btcToUSD : defaultBTC;
              console.log("1 ETH = ",  ethToUSD," ",currency);
              console.log("1 BTC = ",  btcToUSD," ",currency);
              console.log("1 ETH = ",  eth," ",currency);
              console.log("1 BTC = ",  finalbtc," ",currency);
      // }
});

  sess = req.session;


  if (req.session.user) {

    res.render('eventica', {

    });
  }
  else {

    res.render('firsteventica', {

    });
  }

});
app.get('/eventica', function (req, res) {

  if (req.session.user) {
    res.render('eventica', {
    });
  }
  else {
    res.render('signin', {
    });
  }

});

app.get('/firsteventica', function (req, res) {


    res.render('firsteventica', {
    });
});

app.get('/merchant', function (req, res) {

  if (req.session.user) {

    res.render('merchantise', {
    });
  }
  else {
    res.render('signin', {
    });
  }

});
app.get('/merchantview', function (req, res) {

  if (req.session.user) {
    res.render('merchantiseview', {
    });
  }
  else {
    res.render('signin', {
    });
  }

});
app.get('/events', function (req, res) {

  //  sess = req.session;
  if (req.session.user) {
    res.render('events', {
    });
  }
  else {
    res.render('signin', {
    });
  }

});
app.get('/details', function (req, res) {

  if (req.session.user) {
    res.render('details', {
    });
  }
  else {
    res.render('signin', {
    });
  }

});
app.get('/newsdetails', function (req, res) {

  if (req.session.user) {
    res.render('newsdetails', {
    });
  }
  else {
    res.render('signin', {
    });
  }

});
app.get('/historydetails', function (req, res) {

  if (req.session.user) {
    res.render('historydetails', {
    });
  }
  else {
    res.render('signin', {
    });
  }

});

app.get('/forgot', function (req, res) {
  res.render('forgot', {
  });
});
app.get('/reset', function (req, res) {
  res.render('reset', {
  });
});
// app.get('/redirect', function (req, res) {
//   var url = share(req.query.service, req.query);
//   res.redirect(url);
// });
app.get('/exchange', function (req, res) {

  if (req.session.user) {
    res.render('exchange', {

    });
  }
  else {
    res.render('signin', {
    });
  }


});
app.get('/cryptonews', function (req, res) {
// sess = req.session;
  if (req.session.user) {
    res.render('cryptonews', {

    });
  }
  else {
    res.render('signin', {
    });
  }

});
app.get('/chat', function (req, res) {
sess = req.session;
  if (req.session.user) {

    first = req.session.user.firstname;
    last = req.session.user.lastname;

    console.log(sess, "req.sedss")
    username = first + last;
    console.log(username, "username")
    res.render('chat', {
    });

  }
  else {

    res.render('signin', {
    });
  }

});



var usernames = {};


// rooms which are currently available in chat
var rooms = ['BITCOIN', 'ETHEREUM', 'EVENTICA'];

io.sockets.on('connection', function (socket) {

  // when the client emits 'adduser', this listens and executes
  socket.on('adduser', function (username) {
    // store the username in the socket session for this client
    socket.username = username;
    // store the room name in the socket session for this client
    socket.room = 'BITCOIN';

    // var room= io.sockets.adapter.rooms[socket.room]
    // roomlen=room
    // console.log(room,"room")
    // add the client's username to the global list
    usernames[username] = username;
    // send client to room 1
    socket.join('BITCOIN');


    // echo to client they've connected
    socket.emit('updatechat', 'SERVER', 'you have connected to BITCOIN');
    // echo to room 1 that a person has connected to their room
    socket.broadcast.to('BITCOIN').emit('updatechat', 'SERVER', username + ' has connected to this room');
    socket.emit('updaterooms', rooms, 'BITCOIN');
  });

  // when the client emits 'sendchat', this listens and executes
  socket.on('sendchat', function (data) {
    // we tell the client to execute 'updatechat' with 2 parameters
    io.sockets.in(socket.room).emit('updatechat', socket.username, data);
  });

  socket.on('switchRoom', function (newroom) {
    socket.leave(socket.room);
    socket.join(newroom);
    socket.emit('updatechat', 'SERVER', 'you have connected to ' + newroom);
    // sent message to OLD room
    socket.broadcast.to(socket.room).emit('updatechat', 'SERVER', socket.username + ' has left this room');
    // update socket session room title
    socket.room = newroom;
    socket.broadcast.to(newroom).emit('updatechat', 'SERVER', socket.username + ' has joined this room');
    socket.emit('updaterooms', rooms, newroom);
  });


  // when the user disconnects.. perform this
  socket.on('disconnect', function () {
    // remove the username from global usernames list
    delete usernames[socket.username];
    // update list of users in chat, client-side
    io.sockets.emit('updateusers', usernames);
    // echo globally that this client has left
    socket.broadcast.emit('updatechat', 'SERVER', socket.username + ' has disconnected');
    socket.leave(socket.room);
  });
});

// app.get('/referral', function (req, res) {

//   if (req.session.user) {
//     res.render('referral', {

//     });
//   }
//   else {
//     res.render('signin', {
//     });
//   }

// });


app.get('/eventhistory', function (req, res) {

  if (req.session.user) {
    res.render('eventhistory', {

    });
  }
  else {
    res.render('signin', {
    });
  }


});
app.get('/historydetails', function (req, res) {

  if (req.session.user) {
    res.render('historydetails', {

    });
  }
  else {
    res.render('signin', {
    });
  }


});
app.get('/merchantpayment', function (req, res) {

  if (req.session.user) {
    res.render('merchantpayment', {

    });
  }
  else {

    res.render('signin', {
    });
  }
});
app.get('/eventpayment', function (req, res) {

  if (req.session.user) {
    res.render('eventpayment', {

    });
  }
  else {

    res.render('signin', {

    });
  }


});



app.get('/eventcheckout', function (req, res) {

    res.render('eventcheckout', {

    });



});

app.post('/merchantcheckout', function (req, res) {
  sess = req.session;

  res.render('merchantcheckout', {

  });
});
// app.get('/merchantcheckout', function (req, res) {
//   sess = req.session;
//   if (req.session.user) {
//     res.render('merchantcheckout', {

//     });
//   }
//   else {
//     res.render('signin', {
//     });
//   }


// });

app.get('/email', function (req, res) {

  sess = req.session;


  if (funcs.isEmpty(sess.user)) {
    res.redirect('/signin');
  } else {
    res.render('editor_ckeditor_for_email', {
      layout: false,
      name: req.session.user.firstname + " " + req.session.user.lastname
    });
  } // session
});


// Serve the index page
app.post('/email', function (req, res) {
  var message = req.body.editor_full;
  var email_to = req.body.email_to;
  var subject = req.body.subject;
  //console.log(message);

  const nodemailer = require('nodemailer')

  var transporter = nodemailer.createTransport({
    service: "Gmail",
    auth: {
      user: 'saravana.malaichami@gmail.com',
      pass: ''
    }
  });

  var mailOptions = {
    from: 'lmicoadmin@lmico.com',
    to: email_to,
    subject: subject,
    html: message
  };

  //'Dear '+ name +'\n\nYou have received ' + tokens+' LMI tokens from LMICO. \n\nYour Ethereum Wallet is : '+ toaddress +'\nTransaction reference is : ' + txnno +'\n\nRegards, \nLMICO Admin'
  transporter.sendMail(mailOptions, function (error, info) {
    if (error) {
      console.log(error);
    }
    console.log("mail send successfully", info);
  });

  res.send("email sent...");

});

// app.get('/', function (req, res) {
//   sess = req.session;

// var referral = '';

// if(typeof req.param('ref')!='undefined' && req.param('ref')!='' && req.param('ref')!=null){
//  referral=req.param('ref');
// }

//    if(funcs.isEmpty(sess.user)) {
//              res.render('referral', {
//                 layout:false,
//           referral_code:referral
//            });
//          } else {

//             res.redirect('/');
//          }


//      });

0 个答案:

没有答案