项目作者: npkgz

项目描述 :
mysql/mariadb session store for koa-session
高级语言: JavaScript
项目地址: git://github.com/npkgz/koa-session-mysql.git
创建时间: 2018-03-09T10:47:02Z
项目社区:https://github.com/npkgz/koa-session-mysql

开源协议:MIT License

下载


koa-session-mysql

Features

Install

  1. $ npm install koa-session-mysql --save
  2. $ yarn add koa-session-mysql

Usage

MySQL Table Layout (required fields)

  1. CREATE TABLE IF NOT EXISTS `session` (
  2. `session_id` varchar(50) NOT NULL,
  3. `created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  4. `modified` timestamp NULL DEFAULT NULL,
  5. `payload` text
  6. ) ENGINE=InnoDB;
  7. ALTER TABLE `session` ADD PRIMARY KEY (`session_id`);

Examples

  1. const _Koa = require('koa');
  2. const _koaSession = require('koa-session');
  3. const _mysql = require('mysql-magic');
  4. const _koaSessionMysql = require('koa-session-mysql');
  5. // initialize connection pool - koa-session-mysql access it by its name
  6. // somewhere during your applications bootstrap...initialize a custom pool.
  7. // It consumes any pool-options of [mysqljs](https://github.com/mysqljs/mysql)
  8. _mysql.initPool('koa-session', {
  9. host : 'localhost',
  10. user : 'dev',
  11. password : 'dev',
  12. database : 'koa_test'
  13. });
  14. // set db pool + table for storage
  15. _koaSessionMysql.init('koa-session', 'session');
  16. // new Koa app + keygrip keys
  17. const _webapp = new _Koa();
  18. _webapp.keys = ['1234567890'];
  19. // initialize session middleware
  20. cwebapp.use(_koaSession({
  21. store: _koaSessionMysql,
  22. key: 'sid',
  23. maxAge: 86400000,
  24. }, _webapp));
  25. _webapp.use(ctx => {
  26. // ignore favicon
  27. if (ctx.path === '/favicon.ico') return;
  28. // increase counter
  29. let n = ctx.session.views || 0;
  30. ctx.session.views = ++n;
  31. // show counter
  32. ctx.body = n + ' views';
  33. });
  34. _webapp.listen(3000);
  35. console.log('listening on port 3000');

License

koa-session-mysql is OpenSource and licensed under the Terms of The MIT License (X11) - your’re welcome to contribute