Joi 验证检查数据库中是否存在记录
Joi validation check if record exists in database
我正在使用 Joi 验证来验证输入数据,
假设我要创建一个服务,post 正文是:
{"name": "service A", "active": 1, "provider_id": 2}
我需要能够检查 mongodb 提供商集合中是否记录了 ID:2
存在。
Joi 数据库是否知道?或者我应该做些什么吗?
joi 只是一个 JSON 验证器工具,其中不提供数据库连接。
您可以使用直接数据库查询或 ORM 来检查记录是否存在。
对于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 验证来验证输入数据, 假设我要创建一个服务,post 正文是:
{"name": "service A", "active": 1, "provider_id": 2}
我需要能够检查 mongodb 提供商集合中是否记录了 ID:2 存在。 Joi 数据库是否知道?或者我应该做些什么吗?
joi 只是一个 JSON 验证器工具,其中不提供数据库连接。
您可以使用直接数据库查询或 ORM 来检查记录是否存在。
对于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