12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- 'use strict';
- const assert = require('assert');
- module.exports = {
- /**
- * set session external store
- *
- * ```js
- * app.sessionStore = {
- * * get() {},
- * * set() {},
- * * destory() {},
- * };
- *
- * app.sessionStore = class SessionStore {
- * constructor(app) {
- * }
- * * get() {},
- * * set() {},
- * * destroy() {},
- * }
- * ```
- * @param {Class|Object} store session store class or instance
- */
- set sessionStore(store) {
- if (this.config.session.store && this.config.env !== 'unittest') {
- this.logger.warn('[egg-session] sessionStore already exists and will be overwrite');
- }
- // supoprt this.sesionStore = null to disable external store
- if (!store) {
- this.config.session.store = undefined;
- return;
- }
- if (typeof store === 'function') store = new store(this);
- assert(typeof store.get === 'function', 'store.get must be function');
- assert(typeof store.set === 'function', 'store.set must be function');
- assert(typeof store.destroy === 'function', 'store.destroy must be function');
- store.get = this.toAsyncFunction(store.get);
- store.set = this.toAsyncFunction(store.set);
- store.destroy = this.toAsyncFunction(store.destroy);
- this.config.session.store = store;
- },
- /**
- * get sessionStore
- *
- * @return {Object} session store instance
- */
- get sessionStore() {
- return this.config.session.store;
- },
- };
|