我正在使用 expressJS,我对会话有点困惑。我有 1 个 expressJS 服务器,可以从不同的 URL 访问。根据连接来自何处(打开哪个 URL),使用不同的数据库来提供响应。我可以看到会话是冲突的。
我的假设是我应该根据请求的 URL 设置不同的 cookie 名称,但似乎我无法在会话配置中指定函数。
有任何想法吗?
var app = express();
var session = require('express-session');
var router = express.Router();
app.use('/a_route', router);
app.use('/b_route', router);
router.use(session({
genid: function(req) {
return require('crypto').randomBytes(48).toString('hex'); // use UUIDs for session IDs
},
secret: 'JollynakAjollynakAjollynakApamPam',
resave: false,
saveUninitialized: false,
name: **THIS SHOULD BE DYNAMIC BASED ON URL???**
}));
编辑
//declare session variable
var sess ="";
router.post('/login', function (req, res, next) {
sess = req.session;
var uname = req.body.username;
var pwd = req.body.password;
var authResult = null;
sess.username = uname;
sess.instance = req.baseUrl.replace('/', '');
})
和一个示例 AJAX 调用
router.get('/getSomething', function (req, res) {
service.getCaps(sess.instance, function (response) {
res.send(JSON.stringify(response));
});
});