node.js - Bookshelf ORM 如何定义模型属性和数据类型

标签 node.js express bookshelf.js

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

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

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

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

最佳答案

你不能。属性及其类型取自数据库模式。在 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');
};

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

关于node.js - Bookshelf ORM 如何定义模型属性和数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38078593/

相关文章:

javascript - 使用 AngularJS 在客户端初始化 Braintree 支付?

python - 我无法从 Express 应用程序执行 python 脚本

javascript - 带书架的 Node.js;为与 ID 数组的多对多关系设置值

javascript - Sequelize : how to get flattened data, 基于嵌套关联加入表时?

javascript - 数组的内容丰富的 API 查询

node.js - 如何判断示例中给定字符串使用的加密?

javascript - 在第一个错误回调时退出 promise 链

javascript - 如何在nodejs中使用动态参数发出一系列并行API请求

mysql - 尝试使用书架将经过身份验证的用户传递给nodejs中的数据库 Controller

mysql - 书架级联删除