会话variables被删除

我正在使用express-session在我的NodeJS应用程序中使用Express服务器进行会话处理。

我开发了一个特定端点的API来完成会话处理,保存用户发布的数据等。

我原来用香草HTML / CSS / JS(我所熟悉的)来testingAPI的应用程序的样机。 不过,我后来用React重新编写了前端,打到了我用最初的香草应用程序编写的所有相同的端点。 但是,当我尝试使用React前端将variables保存到快速会话对象时,该variables不会保留在req.session 。 例如,在成功login尝试时,我将包含用户名的uservariables保存到req.session 。 这工作正常,如果我loggingreq.session在这一点上的控制台,我看到对象内的variables。 但是,如果我然后击中另一个端点,并尝试访问req.session.uservariables,它不存在,虽然cookie对象停留在req.session

然而,我难住的是,当我使用React应用程序时,这个问题才出现。 当我使用使用静态HTML页面的前端访问同一端点时,可以从任何端点访问来自req.sessionuservariables。 这个问题并没有出现,当我最初开发应用程序使用静态HTML页面与链接的JS文件进行AJAX调用发送/接收数据。

React应用程序在向服务器发送数据或从服务器接收数据时没有问题,但是从React应用程序调用服务器代码时执行的方式不同。 在Express应用程序运行的同一个实例中,这两个应用程序的运行方式不同。

我的代码保存uservariables:

 app.post('/login', (req, res) => { username = req.body.username; password = req.body.password; queryString = 'SELECT * FROM accounts WHERE username = "' + username + '";'; connection.query(queryString, function (err, result) { if(result[0] == undefined){ console.log("user doesn't exist"); } else{ var savedPass = result[0].password; var json = {} if(bcrypt.compareSync(password, savedPass)) { console.log("success!") req.session.user = username; json.response = "correct"; console.log(req.session) } else{ console.log('wrong pass, try again'); json.response = "incorrect"; } } res.send(json); }); }) 

console.log(req.session)if(bcrypt.compareSync(password, savedPass)) {条件输出下面的(期望的)对象:

 Session { cookie: { path: '/', _expires: 2017-12-10T01:25:45.023Z, originalMaxAge: 60000, httpOnly: false }, user: 'fuckun' } } 

我尝试通过在另一个端点执行req.sessionvariables的console.log来接收它。 在香草应用程序中它显示了与上面显示的相同的数据,但是当我使用反应应用程序时,它会输出以下内容:

 Session { cookie: { path: '/', _expires: 2017-12-10T01:25:48.499Z, originalMaxAge: 60000, httpOnly: false } } 

该对象缺lessuservariables。

我不知道发生了什么事,我一直在search谷歌,试图debugging这个问题近一个星期。 我不明白为什么当不同的客户端碰到相同的端点时,服务器端代码的性能会有所不同。

任何关于这个问题的帮助或信息将不胜感激。