我使用Join验证来验证输入数据,考虑到我将创建一个服务和张贴体是:
{"name": "service A", "active": 1, "provider_id": 2}
我需要能够检查在mongodb providers集合中,是否使用id:2进行记录存在。Joi数据库知道吗?还是我应该做别的事?
对于MongoDB,mongoose可以与joigoose一起使用,后者可以轻松地转换Joi模式。因为joi不是ORM
用于ex唯一的电子邮件验证
// 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
joi只是一个JSON验证器工具,其中没有提供数据库连接。
您可以使用直接DB查询或ORM来检查记录是否存在。