我创建了一个示例网站,我正在使用带有会话的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('/');
// }
// });