2

expressjs我已经使用并且Sequelize是我使用的 ORM开发了一个 API 。我想将快速验证集成到我的 API 以验证请求正文和参数。该express-validation框架使用 Joi 验证规则。但由于我已经在我的Sequalize模型中定义了验证规则,我不喜欢使用 Joi 重新定义验证规则以进行请求正文验证。

我只是想知道是否有任何方法或库可以根据 Sequelize 模型中定义的验证生成 Joi 验证规则。否则,处理此问题的最佳方法是什么?

4

2 回答 2

2

你检查过 joi-sequelize吗?

于 2016-05-11T14:02:56.830 回答
1

这个问题太老了,但是这个答案可能对那些正在学习语言或可能开始使用 sequelize 的新手有帮助

Sequelize 默认提供验证。您可以查看文档

Sequelize 验证文档

但是,如果您想为自己的自定义验证器提供自定义“漂亮”消息。您可以随时使用

@hapi/joi

包装“正常”的方式。joi-sequelize 或 sequelize-joi 不仅仅需要提供自定义错误消息。(句点)


function validateData(datas) {
    const schema = Joi.object({
        user_name: Joi.string().min(3).required(),
        user_address: Joi.string().required()
    });
    return schema.validate(datas);
}

然后使用验证数据

    const { error } = validateData(req.body);

如果任何属性未通过验证,它会捕获。

于 2020-07-23T14:23:40.170 回答