如何使用joi验证用户名是否唯一?

时间:2017-11-01 12:05:37

标签: javascript node.js validation hapijs joi

我在某处读过一篇文章,其中作者使用Joi异步验证,通过检查数据库,用户名是否唯一。我现在找不到它,我想知道如何使用Joi

1 个答案:

答案 0 :(得分:2)

正如@Ankh在评论中已经提到的那样,我还认为检查数据库不是joi的职责范围。

不过,现在可以使用joi@v16any().external()进行外部异步验证。这可以用来进行数据库查找。 (release document v16中的详细信息)

const lookup = async (id) => {

    const user = await db.get('user', id);
    if (!user) {
        throw new Error('Invalid user id');
    }
};

const schema = Joi.string().external(lookup);
await schema.validateAsync('1234abcd');