首页 > 解决方案 > Joi验证检查数据库中是否存在记录

问题描述

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

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

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

标签: node.jsvalidationexpressjoi

解决方案


对于 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


推荐阅读