我在某处读过一篇文章,其中作者使用Joi异步验证,通过检查数据库,用户名是否唯一。我现在找不到它,我想知道如何使用Joi
。
答案 0 :(得分:2)
正如@Ankh在评论中已经提到的那样,我还认为检查数据库不是joi
的职责范围。
不过,现在可以使用joi@v16
和any().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');