Hallo,
ich baue eine Applikation mit node.js und expressjs.
Der versuch eine Variable in Session zu speichern gelingt. Allerdings wird bei jedem neuen Request eine neue Session gestartet. Somit änder sich die sessionId und ich kann nicht mehr auf meine Variable zugreifen...
Nach dem Start ses Servers schicke ich 3 Requests's:
mit folgendem Ergebnis:
Also, die session ist gespeichert, und meine gesetzte Variable ist auch da,. Aber warum wird mit jedem Request eine neue Session geschrieben?
Das Ergebnis der Suche im Netz favorisiert cookie secure auf false setzen, da sonst kein bei einer http-Anfrage kein Cookie zurückgegeben wird, aber bei mir bleibt das auch ohne Effekt...
Danke schon mal für jegliche Hilfe
ich baue eine Applikation mit node.js und expressjs.
Der versuch eine Variable in Session zu speichern gelingt. Allerdings wird bei jedem neuen Request eine neue Session gestartet. Somit änder sich die sessionId und ich kann nicht mehr auf meine Variable zugreifen...
Code:
var express = require('express') var http = require('http') var path = require('path') var reload = require('reload') var bodyParser = require('body-parser') var logger = require('morgan') var session = require('express-session') var app = express() var publicDir = path.join(__dirname, 'public') app.set('port', process.env.PORT || 3000); app.use(logger('dev')); app.use(bodyParser.json()); app.use(session({ secret: '1q2w3e4r5t', saveUninitialized: true, resave: true, cookie: { expires: 600000, secure: false } })); var sess; app.post('/order', function (request, response) { console.log( request ); request.session.someField = 'foo'; request.session.save(); response.write('done'); response.end(); }); var server = http.createServer(app) /** * Reload code here */ reload(app).then(function (reloadReturned) { // reloadReturned is documented in the returns API in the README // Reload started, start web server server.listen(app.get('port'), function () { //console.log(myApp) console.log('Web server listening on port ' + app.get('port'))//, myApp) }) }).catch(function (err) { console.error('Reload could not start, could not start server/sample app', err) return; })
Code:
G:\PROJECTS\MODULES\dot-source\dev>curl -d "@data.json" -H "Content-Type: application/json" -X POST http://localhost:3000/order Warning: Couldn't read data from file "data.json", this makes an empty POST. done G:\PROJECTS\MODULES\dot-source\dev>curl -d "@data.json" -H "Content-Type: application/json" -X POST http://localhost:3000/order Warning: Couldn't read data from file "data.json", this makes an empty POST. done G:\PROJECTS\MODULES\dot-source\dev>curl -d "@data.json" -H "Content-Type: application/json" -X POST http://localhost:3000/order Warning: Couldn't read data from file "data.json", this makes an empty POST. done G:\PROJECTS\MODULES\dot-source\dev>
Code:
sessions: [Object: null prototype] { '2LzSgVGeY_V1J4xbnq4A2lnKXUO4xUWD': '{"cookie":{"originalMaxAge":600000,"expires":600000,"secure":false,"httpOnly":true,"path":"/"},"someField":"foo"}', aO35rvqbtUgx9XqfzoFRAdCE2c4EpDhZ: '{"cookie":{"originalMaxAge":600000,"expires":600000,"secure":false,"httpOnly":true,"path":"/"},"someField":"foo"}' }, generate: [Function] }, sessionID: 'UdSzm_CCrR0nrpouzZDjyMM9VcmSyW3B', session: Session { cookie: { path: '/', _expires: 600000, originalMaxAge: 600000, httpOnly: true, secure: false } }, route: Route { path: '/order', stack: [ [Layer] ], methods: { post: true } } } POST /order 200 30.476 ms - -
Code:
2LzSgVGeY_V1J4xbnq4A2lnKXUO4xUWD <--- Request #1 aO35rvqbtUgx9XqfzoFRAdCE2c4EpDhZ <--- Request #2 UdSzm_CCrR0nrpouzZDjyMM9VcmSyW3B <--- Request #3
Danke schon mal für jegliche Hilfe
Kommentar