Node js 中使用 Joi 库进行电子邮件唯一验证

发布于 2025-01-14 09:58:09 字数 101 浏览 1 评论 0原文

我想使用 joi 库来验证电子邮件并检查它是否存在。意味着我想检查电子邮件是否唯一。如何做到这一点。我想使用 mongoose 模型在 joi 库中应用查询来检查用户表中是否存在电子邮件。

I want to use joi library to validate email as well as to check if it is exist or not. means i want to check email is unique or not. How to do that. I want to use mongoose model to apply query in joi library to check email is exist or not in user table.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

翻身的咸鱼 2025-01-21 09:58:09

检查数据库不是 Joi 的职责范围。但如果你还想使用它,可以查看v16的发布文档

Joi v16 提供了 external() 方法来进行外部异步验证。它可用于数据库查找。

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');

Checking the database isn't Joi's area of responsibility. But if you still want to use it, you can check the details in the release document of v16

Joi v16 provides external() method to do an external async validation. It can be used for a database lookup.

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');
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文