Таким образом, в основном в этом коде есть только формы регистрации и входа в систему, и он работал очень хорошо, пока я не добавил к нему сеанс.
Проблема в том, что когда пользователь регистрируется, он регистрируется в информации о зарегистрированном пользователе консоли, это нормально., но когда пользователь возвращается на страницу входа и обновляет страницу, консоль записывает информацию, которая регистрировалась, когда пользователь зарегистрировался, а также сеанс не работает, я на 100% уверен, что это проблема сеанса, но я не могу настроить, что это, здесьэто код (не обращайте внимания на модель «Друзья», это для будущих целей, и я также проверил без этого блока кода, и он работал, так что проблема не существует)
const http = require('http');
const express = require('express');
const socketIO = require('socket.io');
const bodyParser = require('body-parser');
const multer = require('multer');
const consolidate = require('consolidate');
const session = require('express-session');
const app = express();
const server = http.Server(app);
const io = socketIO(server);
app.use(session({secret: 'zazagelovidzudzua', resave: false,
saveUninitialized: true}))
app.engine('html', consolidate.mustache);
app.set('view engine', 'html');
app.set('views', __dirname + '/views');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));
app.use(multer().array());
app.use(express.static('public'));
const mongoose = require('mongoose');
const connectionUri = 'mongodb://localhost/my_database';
mongoose.Promise = global.Promise;
mongoose
.connect(connectionUri, {useNewUrlParser: true})
.then(() => {
console.log('Connection to database established');
})
.catch(error => {
console.error('MongoDB connection error:', error.message);
process.exit(-1);
});
const Schema = mongoose.Schema;
const UserSchema = new Schema({
username: String,
password: String,
email: String,
friends: [{type: Schema.Types.ObjectId, ref: 'Friends'}]
});
const Friend = new Schema({
name: {type: Schema.Types.ObjectId, ref: 'User'},
age: Number,
address: String
})
const User = mongoose.model('User', UserSchema);
const Friends = mongoose.model('Friends', Friend)
var ses;
app.get( '/', (req, res) => {
res.render('mainpage');
});
app.get('/reg', (req, res) => {
res.render('reg');
});
app.post(
'/reeg',
async (req,res) => {
try {
const username = req.body.username
const password = req.body.password
const email = req.body.email
const user = await User.create({username, password, email});
console.log('Created user:', user);
res.sendFile(__dirname + '\\views\\mainpage.html')
}
catch (error) {
res.status(500).send(error.message);
}
});
app.post('/login',
async (req,res) => {
ses = req.session
const {username, password} = req.body;
const user = await User.findOne({username, password}).select('-
password').lean();
if(!user) {
res.send('User: ' + username +' not registered');
return;
}
ses.user = user
res.redirect('/dash')
return res.status(200);
});
app.get('/dash',
async (req,res) =>{
try{
if(!ses.user){
res.status(401).send('login first please!')
res.status(200)
res.send('hi' + ses.user.username)
}
}
catch(error){
console.log(error.message)
}
})
server.listen('8080');
рис, когда яобновить страницу после регистрации изображение