我搜索了其他问题,但似乎没有一个对我有帮助。我正在尝试使用express-session模块将搜索的参数保存在angularJs的表中。 当用户登录时,我已经在会话中保存了一些信息(工作正常)。但是,当我尝试对过滤器执行相同操作时,它不起作用
这就是我用的
在server.js中
var session = require('express-session');
var passport = require('passport');
var app = express();
app.use(session({
secret: 'secret' ,
saveUninitialized: true,
resave: true,
}));
在AngularJs中,我调用该函数来设置和检索会话数据
检索数据
$http.get(apihost + '/customSessionFilters/getSessionFilters')
.success(function (getCurrentFilters) {
if(getCurrentFilters.status == 'filters') {
console.log(getCurrentFilters);
}
else {
console.log('no filters');
}
})
.error(function (err) {
Notification.error(err.message);
});
设置数据
var filters = angular.toJson($scope.searchParams);
$http.post(apihost + '/customSessionFilters/setSessionFilters/' + filters)
.success(function (setCurrentFilters) {
console.log(setCurrentFilters);
})
.error(function (err) {
Notification.error(err.message);
});
然后是nodejs中的2个功能
设置数据
var express = require('express');
var router = express.Router();
var session = require('express-session');
router.post('/setSessionFilters/:paramsFilter',function(req,res,next) {
var filters = JSON.parse(req.params.paramsFilter);
req.session.customSessionFilters = filters;
console.log('PROVA NUOVO SERVICE -> setSessionFilters');
console.log(req.session);
res.json({status: 'ok', data: req.session.customSessionFilters});
});
并获取数据
router.get('/getSessionFilters',function(req,res,next) {
console.log('***********');
console.log(req.session);
if(req.session.customSessionFilters) {
console.log('PROVA NUOVO SERVICE -> getSessionFilters');
console.log(req.session.customSessionFilters);
res.json({status: 'filters', data: req.session.customSessionFilters});
}
else {
console.log('PROVA NUOVO SERVICE -> no filters');
res.json({status: 'no_filters'});
}
});
我希望找到req.session.customSessionFilters来填充我在表的搜索表单中设置的参数。我知道数据已传递到“设置会话数据”,因为我可以在console.log中看到它们,但是当我到达“获取会话数据”时,它们就消失了。 有帮助吗?
编辑: router.post(customSessionFilters / setSessionFilters)的输出(UserMaintenanceCenterCode和DealerList是我已经在登录中的会话中添加的变量; customSessionFilters是我在函数中添加的内容)
Session {
cookie:
{ path: '/',
_expires: null,
originalMaxAge: null,
httpOnly: true },
passport: { user: 90 },
UserMaintenanceCenterCode: [ 1 ],
dealerList: [ 13 ],
customSessionFilters: { year: 2018, Code: 'CC010', Dealer: 13 }
}
router.get(customSessionFilters / getSessionFilters)的输出相同,但没有customSessionFilters。
未显示$ http.post(apihost +'/ customSessionFilters / setSessionFilters')的输出,但只会在连接的函数中打印customSessionFilters。
$ http.get(apihost +'/ customSessionFilters / getSessionFilters')的输出始终显示“ no_filters”(未定义customSessionFilters时函数的响应)