首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Koa会议: MySQL

Koa会议: MySQL
EN

Stack Overflow用户
提问于 2014-09-15 11:59:34
回答 2查看 1.1K关注 0票数 1

如何将koa会话连接到mysql商店?看起来好像还没有开发mysql商店,所以我想我可以开发它。除了建店外,还有其他解决办法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-21 18:46:46

根据我以前的回答,我已经将这段代码发布到github和npm上。代码不应该是ahrd扩展到其他关系DB:

https://github.com/tb01923/koa-mysql-session

票数 1
EN

Stack Overflow用户

发布于 2014-09-16 13:17:06

我正试图按照连接mysql-会话存储逻辑/ SQL构建mysql存储。我还在查看koa-红商店的方法。实质上,会话存储使用get(sid)和set(sid,obj)方法显示一个对象。

两个koa会话存储对象都具有以下签名:

代码语言:javascript
复制
Store.prototype.get = function *(sid) {
  return session;
};

Store.prototype.set = function *(sid, val, ttl) { };
Store.prototype.destroy = function *(sid) { };

因此,我把这些编码起来:

代码语言:javascript
复制
MysqlStore.prototype.get = function *(sid) {
    let connection = this.getConnection()
    let results = yield connection.query(GET_STATEMENT, [sid])
    let session = null ;
    if(results && results[0] && results[0][0] && results[0][0].data){
        session = JSON.parse(results[0][0].data);
    }
    return session
};

MysqlStore.prototype.set = function *(sid, session, ttl) {
    let expires = getExpiresOn(session, ttl).valueOf()
    let data = JSON.stringify(session);
    let connection = this.getConnection()
    let results = yield connection.query(SET_STATEMENT, [sid, expires, data, expires, data])
    return results
};

MysqlStore.prototype.destroy = function *(sid) {
    let connection = this.getConnection()
    let results = yield connection.query(DELETE_STATEMENT, [sid])
};

构造函数负责mysql连接池(通过共-mysql)并在DB中为会话设置表:

代码语言:javascript
复制
var MysqlStore = function (options) {
    this.getConnection = function(){
        let connection = mysql.createPool(options) ;
        return connection ;
    }

    this.setup = co(function*() {
        let connection = this.getConnection()
        let result = yield connection.query(CREATE_STATEMENT)
    })

    this.setup()
};

在某个时候,我将寻求一些建议,以便在github和NPM上发布这个解决方案。我想确定我首先是在尊重使用过的库和许可证。项目将在这里进行:https://github.com/tb01923/koa-mysql-session

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25847588

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档