Mein Problem stammt ausschließlich um die/Route. Ich denke, das ist die Wurzelroute. Wenn ein Benutzer eine Verbindung zu meiner Site herstellt, überprüfe ich, ob Sitzungsdaten für den genannten Benutzer vorhanden sind, damit er beim Schließen des Browsers nicht immer neu anmelden muss. Wenn für den Benutzer keine Sitzungsdaten vorhanden sind, wird meine Website an den Anmelde-Router weitergeleitet.Root-Route, die nicht in Express umleiten
Lassen Sie uns so tun, als wäre meine Website www.example.com. Wenn ich zu www.example.com/buy gehe und keine Sitzungsdaten für den Benutzer habe, wird die Website automatisch wie erwartet auf www.example.com/signup umgeleitet. Das gleiche passiert, wenn ich www.example.com/sell eintippte und keine Sitzungsdaten existieren. Aber wenn ich nur www.example.com eintippte und es noch keine Sitzungsdaten gibt, wird die URL nicht zu www.example.com/signup umgeleitet.
Warum gibt es diese "spezielle" Behandlung der Wurzelroute, und wie kann ich dafür sorgen, dass sie dem gleichen Verhalten folgt wie die anderen Routen?
-Code-Schnipsel aus meinem server.js
, die ich bezieht sich auf die Frage denken:
app.get('/session', (req, res) => {
res.send(req.session.auth);
})
.get('/signup', (req, res) => {
if (!req.session.auth) {
res.sendFile(path.join(__dirname, 'client/public/index.html'));
} else {
return res.redirect('/');
}
})
.get('*', (req, res) => {
if (req.session.auth) {
res.sendFile(path.join(__dirname, 'client/public/index.html'));
} else {
return res.redirect('/signup');
}
});
volle Seite von server.js
const express = require('express'),
app = express(),
bodyParser = require('body-parser'),
path = require('path'),
initDatabase = require('./db/dbConfig'),
port = process.env.PORT || 9000,
io = require('socket.io').listen(app.listen(port,() => {
initDatabase();
console.log('Successfully connected to port ', port);
})),
session = require('express-session'),
MySQLStore = require('express-mysql-session')(session),
sessionStore = new MySQLStore({
host: require('./actualKeys').host,
port: 3306,
user: require('./actualKeys').username,
password: require('./actualKeys').password,
database: require('./actualKeys').database,
checkExpirationInterval: 60000,
expiration: 43200000,
}),
users = {},
rooms = {};
// express
app.use(express.static('client/build'))
.use(bodyParser.urlencoded({
extended: true,
}))
.use(bodyParser.json())
.use(session({
secret: require('./actualKeys').sessionCode,
store: sessionStore,
resave: false,
saveUninitialized: true,
}));
require('./server/routers/router')(app);
app.get('/session', (req, res) => {
res.send(req.session.auth);
})
.get('/signup', (req, res) => {
if (!req.session.auth) {
res.sendFile(path.join(__dirname, 'client/public/index.html'));
} else {
return res.redirect('/');
}
})
.get('*', (req, res) => {
if (req.session.auth) {
res.sendFile(path.join(__dirname, 'client/public/index.html'));
} else {
return res.redirect('/signup');
}
});
Danke