Javascript 在bookshelf.js中手动设置时间戳值

Javascript 在bookshelf.js中手动设置时间戳值,javascript,node.js,bookshelf.js,knex.js,Javascript,Node.js,Bookshelf.js,Knex.js,我有一张桌子,上面有时间戳,书架上也配置了时间戳。通常情况下,一切都会按它应该的方式进行,bookshelf会处理时间戳,但我有一个案例,我想指定它们,但当我尝试这样做时,会忽略值,并使用当前日期 我已尝试将我的用例简化为要点: var Author = Bookshelf.Model.extend({ tableName: 'authors', hasTimestamps: ['created_at', 'updated_at'], bookAuthors: function()

我有一张桌子,上面有时间戳,书架上也配置了时间戳。通常情况下,一切都会按它应该的方式进行,bookshelf会处理时间戳,但我有一个案例,我想指定它们,但当我尝试这样做时,会忽略值,并使用当前日期

我已尝试将我的用例简化为要点:

var Author = Bookshelf.Model.extend({
  tableName: 'authors',
  hasTimestamps: ['created_at', 'updated_at'],

  bookAuthors: function(){
    return this.hasMany(require('.book_authors'));
  },

  associateBookWithAuthor(bookId,timestamp) {
    return self.related('bookAuthors').create({
      book_id: bookId,
      updated_at: timestamp, // ignored by bookshelf
      created_at: timestamp  // also ignored
    })
  }
}

我仍然希望为常规用例配置
hastinestamps
。是否可以让Bookshelf让我覆盖时间戳行为?

查看Bookshelf source created\u at和Update\u at后,根据需要在create/insert上设置,并且从不从传入的模型中读取:


这使我的目标不可能实现。考虑到这一点,最好不要让这些列过载,并为我试图存储的日期创建另一个列。

只是为新访问者更新这个问题的正确答案。最新的is书架允许覆盖时间戳值

请参见此处的官方文档和示例

myModel.save({created_at: new Date(2015, 5, 2)}).then(function(updatedModel) {
  // {
  //   name: 'blah',
  //   created_at: 'Tue Jun 02 2015 00:00:00 GMT+0100 (WEST)',
  //   updated_at: 'Sun Mar 25 2018 15:07:11 GMT+0100 (WEST)'
  // }
})