0

から単純なセッション ストアを作成してbookshelfjsいますが、タイムスタンプ列を正しく設定する必要があります。now() + ttl 間隔 1ms で列の ttl を書き込もうとしていますが、それを行う方法や、その列の生のコンテンツをトリガーする方法を思い出せません。

var Session = Models.Bookshelf.Model.extend({
  tableName: 'sessions',
  idAttribute: 'id'
},{
  get: Promise.method(function(sid){
    console.log("Fetching SID = ", sid);
    return new this({id: sid}).fetch();
  }),
  set: Promise.method(function(sid, session, ttl){
    console.log("Setting SID = ", sid);
    console.log("Setting SID session = ", session );
    console.log("Setting SID ttl = ", ttl);
    new this({id: sid}).save({session: session, expiry: "(now() + " + ttl + " * interval '1 ms')" });
  }),
  destroy: Promise.method(function(sid){
    this.destroy({id: sid});
  })
});

koa-pg-session からの元のクエリは次のとおりです。

UPDATE %I.%I SET session = $1, expiry = (now() + $2 * interval '1 ms') WHERE id = $3;

Knex の raw クエリ フォーマッタを使用していると確信していますが、列の値を設定するための正しい部分がドキュメントに見つかりません。完全なクエリを文字列に記述したくありません。単一の列「有効期限」だけでそれを行う方法を知りたいです。

4

1 に答える 1