Как настроить хранилище экспресс-сессий redis с обратной связью?

Я использую loopback 3. Какой коннектор лучше loopback-connect-redis или loopback-kv-redis и как настроить атрибут хранилища в объекте экспресс-сеанса после добавления источник данных .

Я пытался: store: app.dataSources.myDataSourceName но получил ошибку "store.get не является функцией", поэтому я попробовал:

store: app.dataSources.myDataSourceName).KeyValueAccessObject

Я не получаю никаких ошибок, но у меня нет ключа, значения на Redis. Спасибо


person Bruce_Wayne    schedule 12.12.2017    source источник


Ответы (1)


Loopback (с которым я, по общему признанию, не очень знаком) основан на Express (с которым я знаком).

Я считаю, что вы должны просто использовать express-sessions как в обычном Express.

const 
  ...
  session     = require('express-session'),
  RedisStore  = require('connect-redis')(session),
  redis       = require('redis'),
  rs          = new RedisStore({ client  : redis.createClient([connection your info]) })
});

session({ 
  secret              : 'foobar',
  store               : rs
});

Затем вы зарегистрируете его в своем файле middleware.json на этапе session.

person stockholmux    schedule 12.12.2017
comment
Спасибо, но уже есть коннектор для обратной связи, который я пытаюсь использовать Loopback-redis. и Loopback-kv-redis. Я не понял разница между ними и как их использовать в моем проекте. Также я хотел знать, в чем разница между вашим кодом и этим: const session = require('express-session'); RedisStore = require('connect-redis')(session), rs = new redisStore({host: '', port: })) Спасибо. - person Bruce_Wayne; 12.12.2017
comment
express-session предназначен для работы с connect-redis, который предназначен для работы с node_redis (он же require('redis')). Loopback-redis и loopback-kv-redis имеют разные API и разработаны как источники данных специально для loopback. Они не будут работать с экспресс-сессиями. - person stockholmux; 12.12.2017
comment
Спасибо. Можете ли вы рассказать мне, как это работает, когда я не использую require('redis') и могу видеть свои данные в Redis? - person Bruce_Wayne; 12.12.2017