Knex.js 与 Joi 绑定
Knex.js with Joi binding
我将 Knex.js(连同 Bookshelf.js)与 PostreSQL 数据库一起使用,我正在尝试 "extract" SQL 模式为了将它与 Joi or Checkit.
之类的东西一起使用
这里只是一个简单的例子:
用 knex 编写的模式:
return knex.schema.createTable('users', table => {
table.string('username').notNullable()
table.string('password')
})
以及我希望自动获取的内容:
const schema = Joi.object().keys({
username: Joi.string().required(),
password: Joi.string()
})
重点是避免两次编写模式并以编程方式验证对象,然后再将其传递给 bookshelf/knex。有没有内置的方法来做到这一点?或者任何最佳实践?
您需要手动执行此操作或编写自己的架构构建器来输出 Joi 架构和 knex 迁移...
通常人们只是在 knex
中单独进行迁移,然后更新 Joi 验证以与更改后的数据库模式同步。
如果人们正在寻找与所询问的服务类似的服务。我刚刚发布了一个将 Joi 模式 转换为 SQL table 和 Knex[ 的库=20=].
https://github.com/Fantasim/joi-to-sql
目前,该库仅支持 MySQL 及其基本功能,但我计划添加更多功能,例如自动迁移(在 MySQL 上)。
如果您需要其他功能或其他数据库支持,欢迎拉取请求!
我将 Knex.js(连同 Bookshelf.js)与 PostreSQL 数据库一起使用,我正在尝试 "extract" SQL 模式为了将它与 Joi or Checkit.
之类的东西一起使用这里只是一个简单的例子:
用 knex 编写的模式:
return knex.schema.createTable('users', table => {
table.string('username').notNullable()
table.string('password')
})
以及我希望自动获取的内容:
const schema = Joi.object().keys({
username: Joi.string().required(),
password: Joi.string()
})
重点是避免两次编写模式并以编程方式验证对象,然后再将其传递给 bookshelf/knex。有没有内置的方法来做到这一点?或者任何最佳实践?
您需要手动执行此操作或编写自己的架构构建器来输出 Joi 架构和 knex 迁移...
通常人们只是在 knex
中单独进行迁移,然后更新 Joi 验证以与更改后的数据库模式同步。
如果人们正在寻找与所询问的服务类似的服务。我刚刚发布了一个将 Joi 模式 转换为 SQL table 和 Knex[ 的库=20=].
https://github.com/Fantasim/joi-to-sql
目前,该库仅支持 MySQL 及其基本功能,但我计划添加更多功能,例如自动迁移(在 MySQL 上)。 如果您需要其他功能或其他数据库支持,欢迎拉取请求!