我在 Express.js 应用程序中使用 Bookshelf.js ORM,在 Bookshelf ORM 中仅给出了定义模型和关联的示例。
我在任何地方都找不到如何定义模型属性和数据类型,例如
name: {
type: string
}
age: {
type: number
}
需要帮助..提前致谢..
最佳答案
你不能。属性及其类型取自数据库模式。在 Bookshelf 中定义属性最接近的是键定义:主键和外键。但即使如此,您也仅限于它们的名称和关键语义,类型取决于它们的数据库类型。
如果您想在代码中定义它们,您可以使用 Knex Schema Builder和 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 模型无关。您有责任让它们保持同步吗?
关于node.js - Bookshelf ORM 如何定义模型属性和数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38078593/