Я делаю приложение для викторины, и у меня есть эти глобальные переменные x, оценка и сложность, из которых я использую x, чтобы получить вопрос из моей базы данных через серийный номер (sno). Все работало нормально, пока я не развернул приложение на heroku и не попросил своих друзей посетить его одновременно. Я полагал, что в узле несколько запросов не имеют разные значения переменных, но одинаковы. У меня вопрос, как мне определить их независимо для каждой сессии?
var express = require("express");
var app = express();
var mongoose = require("mongoose");
var bodyParser = require("body-parser")
var session = require('express-session');
const PORT = process.env.PORT || 3000;
var x = 1;
var score = 0;
var difficulty = "";
//APP CONFIG
mongoose.connect(MONGO_URI, {useNewUrlParser: true});
app.set("view engine", "ejs");
app.use(express.static("public"));
app.use(bodyParser.urlencoded({extended: true}));
app.use(session({secret: 'keyboard cat', saveUninitialized: true, resave: true, cookie: { secure: true }}));
//MODEL CONFIG
var questionSchema = new mongoose.Schema({
difficulty: String,
sno: Number,
question: String,
option1: String,
option2: String,
option3: String,
option4: String,
answer: String
});
var Question = mongoose.model("Question", questionSchema);
app.get("/", function(req, res){
res.render("home")
})
app.post("/", function(req, res){
difficulty = req.body.difficulty;
res.redirect("/startQuiz")
})
app.get("/startQuiz", function(req, res){
if(x>10){
res.render("score", {score: score})
x = 1;
score = 0;
} else{
Question.findOne({difficulty: difficulty, sno: x}, function(err, question){
if(err){
console.log(err)
} else {
res.render("index", {question: question});
}
});
}
});
app.post("/startQuiz", function(req, res) {
Question.findOne({difficulty: difficulty, sno: x}, function(err,foundQuestion){
if(err){
console.log(err);
} else{
if(foundQuestion.answer === req.body.val){
score++;
x++;
res.send("#7fce44")
} else {
x++;
res.send("#e80909")
}
}
})
});
app.listen(3000, () => {
console.log(`Our app is running on port ${ PORT }`);
});