bookshelf.js时间戳不起作用

DeX*_*eX3 8 javascript node.js bookshelf.js knex.js

我现在正在尝试使用bookshelf.js,并使用以下knex迁移创建了一个示例表:

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

然后我定义了一个bookshelf.js模型:

var User = bookshelf.Model.extend( {
    tableName: "users"
} );
Run Code Online (Sandbox Code Playgroud)

并试图保存它:

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

一切似乎都有效,当我查看数据库时,新用户确实已保存,但时间戳列是NULL.在打电话u.timestamp()之前打电话u.save()似乎也没有任何效果.

我在这做错了什么?

DeX*_*eX3 21

哈,我终于明白了!

你必须告诉模型使用这样的时间戳:

var User = bookshelf.Model.extend( {
    tableName: "users",
    hasTimestamps: true
} );
Run Code Online (Sandbox Code Playgroud)