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

Raj*_*oit 2 node.js express bookshelf.js

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

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

name: {
  type: string
}
age: {
  type: number
}
Run Code Online (Sandbox Code Playgroud)

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

fla*_*usa 5

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

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

// 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');
};
Run Code Online (Sandbox Code Playgroud)

但请记住,这些定义与相应的 Bookshelf 模型无关。使它们保持同步是您的职责。