Knex.js与Joi绑定

时间:2017-05-13 19:01:01

标签: javascript node.js knex.js joi

我正在将Knex.js(以及Bookshelf.js)与PostreSQL数据库一起使用,我正在尝试“提取”SQL模式,以便将其用于Joi或{{3 }}

这里只是一个简单的例子:
用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。有没有内置的方法来做到这一点?还是最好的做法?

2 个答案:

答案 0 :(得分:0)

您需要手动执行此操作或编写自己的架构构建器,以输出Joi架构和knex迁移...

通常人们只是在knex中单独进行迁移,然后更新Joi验证以与更改的数据库架构同步。

答案 1 :(得分:0)

如果人们正在寻找类似的服务,那比要求的服务要多。我刚刚发布了一个库,该库使用 Knex Joi模式转换为 SQL表

https://github.com/Fantasim/joi-to-sql

目前,该库仅支持MySQL及其基本功能,但我计划添加更多功能,例如自动迁移(在MySQL上)。 如果您需要其他功能或其他数据库支持,欢迎提出请求!