Я новичок в стеке.У меня есть одна проблема.Я использовал экспресс-сеанс, но когда я установил сеанс, я могу получить значение сеанса в первый раз.В следующий раз, когда я вызываю ту же функцию или другую функцию, я не могу получить значение сеанса.значение сеанса уничтожается автоматически.Я уже пробовал express-session, express-cookie и express-session-cookie, но безуспешно.
Любое решение?
server.js код:
const express = require('express');
path = require('path');
bodyParser = require('body-parser');
cors = require('cors');
mongoose = require('mongoose');
config = require('./config/DB');
const app = express();
var session = require('express-session');
var cookieParser = require('cookie-parser');
app.use(cookieParser());
app.use(session({
secret: "Shh, its a secret!",
resave: false,
saveUninitialized: true,
cookie: { secure: true }
}));
mongoose.Promise = global.Promise;
const signUpRoutes = require('./routes/signup.route');
const logInRoutes = require('./routes/login.route');
app.use(bodyParser.json());
app.use(cors());
const port = process.env.PORT || 4000;
app.use('/signup', signUpRoutes);
app.use('/login', logInRoutes);
const server = app.listen(port, function(){
console.log('Listening on port ' + port);
});
login.route.js:
const express = require('express');
var logInRoutes = express.Router();
mongoose = require('mongoose');
const bcrypt = require('bcrypt');
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";
// Defined login route
logInRoutes.route('/login').post(function (req, res) {
MongoClient.connect(url, function(err, db) {
if (err) throw err;
var check_dbo = db.db('eclipsia');
var given_email=req.body.email;
var given_password=req.body.password;
check_dbo.collection("company").findOne({company_email: given_email},
function(err, result) {
if(result){
if(bcrypt.compareSync(given_password, result.password)) {
req.session.email= result.company_email;
req.session.company_id= result._id;
req.session.save();
if(req.session.email){
res.status(200).json({'return_data': '1' });
}else {
res.status(200).json({'return_data': '0'});
}
}else {
res.status(200).json({'return_data': '2'});
}
}else{
res.status(200).json({'return_data': '3'});
}
});
});
});
logInRoutes.route('/login_check').get(function (req, res) {
if(req.session.email){
res.status(200).json({'return_data': '1'});
} else {
res.status(200).json({'return_data': '0'});
}
});
module.exports = logInRoutes;