Javascript 我该如何在书架FJS和knex上写这篇文章

Javascript 我该如何在书架FJS和knex上写这篇文章,javascript,node.js,bookshelf.js,knex.js,Javascript,Node.js,Bookshelf.js,Knex.js,我正在从Bookshelffjs制作一个简单的会话存储,但是我需要正确设置timestamp列。我试图以1ms的now()+ttl间隔编写该列的ttl,但我想不起如何完成,或者如何触发该列的原始内容: var Session = Models.Bookshelf.Model.extend({ tableName: 'sessions', idAttribute: 'id' },{ get: Promise.method(function(sid){ console.log("

我正在从Bookshelffjs制作一个简单的会话存储,但是我需要正确设置timestamp列。我试图以1ms的now()+ttl间隔编写该列的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会话的原始查询为:

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

我确信这是Knex的原始查询格式化程序,但我在文档中找不到设置列值的正确部分。我不想在字符串中编写完整的查询,我想知道如何只为单个列“expiry”执行查询。

我还没有测试过这个,请告诉我它是否有效(当然,您需要先要求knex):


我还没有测试过这个,告诉我它是否有效(当然,你需要先要求knex):


我还没有测试过这个,告诉我它是否有效(当然,你需要先要求knex):


我还没有测试过这个,告诉我它是否有效(当然,你需要先要求knex):


这就是我昨晚发现的结果,我来这里发布结果:newthis({id:sid}).save({session:session,expiration:this.Bookshelf.knex.raw(((now()+“+ttl+”*interval'1ms')));这就是我昨晚发现的结果,我来这里发布结果:newthis({id:sid}).save({session:session,expiration:this.Bookshelf.knex.raw(((now()+“+ttl+”*interval'1ms')));这就是我昨晚发现的结果,我来这里发布结果:newthis({id:sid}).save({session:session,expiration:this.Bookshelf.knex.raw(((now()+“+ttl+”*interval'1ms')));这就是我昨晚发现的结果,我来这里发布结果:newthis({id:sid}).save({session:session,expiration:this.Bookshelf.knex.raw(((now()+“+ttl+”*interval'1ms')));
new this({id: sid}).save({session: session, expiry: knex.raw("(now() + " + ttl + " * interval '1 ms')") });