Javascript 我该如何在书架FJS和knex上写这篇文章
我正在从Bookshelffjs制作一个简单的会话存储,但是我需要正确设置timestamp列。我试图以1ms的now()+ttl间隔编写该列的ttl,但我想不起如何完成,或者如何触发该列的原始内容: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("
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')") });