私はexpressJSを使用していますが、セッションについて少し混乱しています。異なる URL から到達可能な 1 つの ExpressJS サーバーがあります。接続がどこから来るか (どの 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));
});
});