簡體   English   中英

bookshelf.js 時間戳不起作用

[英]bookshelf.js timestamps not working

我現在正在試驗 bookshelf.js,並使用以下 knex 遷移創建了一個示例表:

exports.up = function(knex, Promise) {
  return knex.schema.createTable( "users", function( table ) {
        table.increments();
        table.timestamps();
        table.string( "email" );
    } );
};

然后我定義了一個 bookshelf.js 模型:

var User = bookshelf.Model.extend( {
    tableName: "users"
} );

並試圖保存它:

var u = new User( { email: "john.doe@example.com" } );
u.save();

一切似乎都正常,當我查看數據庫時,新用戶確實被保存了,但是時間戳列是NULL 在調用u.timestamp()之前也調用u.save()似乎沒有任何效果。

我在這里做錯了什么?

哈,我終於明白了!

您必須告訴模型使用這樣的時間戳:

var User = bookshelf.Model.extend( {
    tableName: "users",
    hasTimestamps: true
} );

打字稿中的例子

import bookshelf from '../config/bookshelf';

class User extends bookshelf.Model<User> {
  get tableName(): string {
    return 'users';
  }
  get hasTimestamps(): boolean {
    return true;
  }
}

export default User;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM