【问题标题】:Joi validation check if record exists in databaseJoi验证检查数据库中是否存在记录
【发布时间】:2018-11-19 18:51:59
【问题描述】:

我正在使用 Joi 验证来验证输入数据, 考虑我要创建一个服务和帖子正文是:

{"name": "service A", "active": 1, "provider_id": 2}

我需要能够检查是否在 mongodb 提供程序集合中,记录 id: 2 存在。 Joi 数据库知道吗?还是我应该做其他事情?

【问题讨论】:

    标签: node.js validation express joi


    【解决方案1】:

    对于 MongoDB,mongoose 可以与 joigoose 一起使用,它可以轻松转换 Joi 模式。因为 joi 不是 ORM

    对于前唯一的电子邮件验证

    // rating.js
    const mongoose = require('mongoose')
    const joigoose = require('joigoose')(mongoose)
    
    // Require the 'ratings' schema
    const schema = require('./rating-schema')
    
    // Convert joi to mongoose schema
    const mongooseSchema = joigoose.convert(schema);
    
    // Modify some fields with database specific instructions 
    mongooseSchema.email.unique = true
    
    // Add fields which don't make sense on the schema validator
    mongooseSchema.updatedAt = { type: Date, default: Date.now }
    mongooseSchema.createdAt = { type: Date, default: Date.now }
    
    // Define mongoose model
    const Ratings = mongoose.model('Ratings', mongooseSchema)
    
    module.exports = Ratings
    

    参考:https://codeburst.io/joi-validate-input-and-define-databases-in-javascript-84adc6f1474b 参考:https://github.com/yoitsro/joigoose

    【讨论】:

      【解决方案2】:

      joi 只是一个 JSON 验证器工具,它没有提供数据库连接。

      您可以使用直接 DB 查询或 ORM 来检查记录是否存在。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-08-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-15
        • 1970-01-01
        相关资源
        最近更新 更多