Bookshelf ORM 如何定义模型属性和数据类型

Bookshelf ORM How to define Model attributes and datatypes

我正在为我的 Express.js 应用程序使用 Bookshelf.js ORM,在 Bookshelf ORM 中仅给出了定义模型和关联的示例。

我在任何地方都找不到,如何定义模型属性和数据类型,例如

name: {
  type: string
}
age: {
  type: number
}

需要帮助..提前致谢..

你不能。属性及其类型取自数据库模式。在 Bookshelf 中最接近定义属性的是键定义:主键和外键。但即便如此,您也仅限于它们的名称和键语义,类型取决于它们的数据库类型。

但是如果您想在代码中定义它们,您可以使用 Knex Schema Builder and Migrations 功能。喜欢:

// 0001_people.js
'use strict';

exports.up = function(knex, Promise) {
  return knex.schema.createTable('people', function(table) {
    table.increments('id').primary();
    table.string('name').unique().notNullable();
    table.integer('age').notNullable();
  });
};

exports.down = function(knex, Promise) {
  return knex.schema.dropTable('people');
};

但请记住,这些定义与相应的 Bookshelf 模型无关。你有责任让他们保持同步吗?