【发布时间】:2018-11-19 18:51:59
【问题描述】:
我正在使用 Joi 验证来验证输入数据, 考虑我要创建一个服务和帖子正文是:
{"name": "service A", "active": 1, "provider_id": 2}
我需要能够检查是否在 mongodb 提供程序集合中,记录 id: 2 存在。 Joi 数据库知道吗?还是我应该做其他事情?
【问题讨论】:
标签: node.js validation express joi
我正在使用 Joi 验证来验证输入数据, 考虑我要创建一个服务和帖子正文是:
{"name": "service A", "active": 1, "provider_id": 2}
我需要能够检查是否在 mongodb 提供程序集合中,记录 id: 2 存在。 Joi 数据库知道吗?还是我应该做其他事情?
【问题讨论】:
标签: node.js validation express joi
对于 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
【讨论】:
joi 只是一个 JSON 验证器工具,它没有提供数据库连接。
您可以使用直接 DB 查询或 ORM 来检查记录是否存在。
【讨论】: