Ich habe viele Variationen dieser Frage gesehen, aber keine schien mein Problem zu lösen. Ich versuche, einen Node.js
Server mit Express
einzurichten. Hier ist meine Server-Konfiguration:Zugriff auf req.session-Variablen in Express/NodeJS nicht möglich
var express = require('express'),
RedisStore = require('connect-redis')(express);
var app = express();
app.use(express.urlencoded());
app.use(express.json());
app.use(express.cookieParser());
app.use(express.session({
store: new RedisStore(),
secret: APP_SECRET
}));
// Initialize redis connection
var client = redis.createClient();
client.on('connect', function() {
console.log('Connected to Redis server')
})
client.on('error', function (err) {
console.log('Error ' + err);
});
// Enable cross-origin resource sharing
app.all('*', function(req, res, next) {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Headers', 'X-Requested-With');
next();
});
var api = require('./controllers/api.js');
app.post('/login', api.login);
app.get('/auth', api.auth);
app.listen(3000);
Und hier sind einige einfache Routen:
exports.login = function(req, res) {
var user = new User(req.username, req.password);
req.session.user = user;
console.log(req.session.user); //works
res.json({user:user});
}
exports.auth = function(req, res) {
console.log(req.session.user); //doesn't work
res.json(req.session.user);
}
Also in meinem login
Weg, kann ich die Session-Variable drucken, wie erwartet. Aber wenn ich die Route auth
nach dem Besuch der login
Route besuchen, ist die Sitzungsvariable nicht definiert. Wie kann ich mit Express-Sitzungen arbeiten?
Dumme Frage, aber die Route-Handler Sie auf dem Laufenden nicht wirklich eine Antwort senden. Haben Sie versucht, von 'login' zu rendern oder umzuleiten? Während Ihre Sitzung nicht in einem Cookie gespeichert wird, wird trotzdem ein Cookie verwendet. Wenn es keine Antwort gibt, würde es niemals zum Browser zurückkehren. – juanpaco
@juanpaco Ich habe die Antworten bearbeitet, aber ich werde sie zur besseren Übersicht wieder einfügen. –