如何使用 joi 验证用户名是否唯一?
How to validate whether a username is unique using joi?
我在某处看到一篇文章,作者使用Joi异步验证,通过检查数据库来验证用户名是否唯一。我现在找不到它,我想知道我们如何使用 Joi
.
来做到这一点
正如@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');
我在某处看到一篇文章,作者使用Joi异步验证,通过检查数据库来验证用户名是否唯一。我现在找不到它,我想知道我们如何使用 Joi
.
正如@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');