node.js – 只使用JonSchema和Mongoose吗?

我有一个api使用express,
mongodb和我使用AJV验证来验证传入的请求.

//JSONSchema
var recordJsonSchema = {
     type: "object",
     properties: {
         name: { type: "string" },
         idNumber: { type: "number" },
         content: { type: "string" }
     },
     required: ['name','idNumber']
}

我会使用这个JSON模式来验证传入的请求.

app.post('/record', (req,res) => {
   let errors = ajv.inspect(req.body, recordJsonSchema)
   return errors ? res.send(errors) : res.send(this.handler(req));
})

这工作正常,速度非常快.我也喜欢JsonSchema,因为它符合OpenAPI标准.

不幸的是,为了通过mongoose读取/写入mongo,我还需要创建一个MongoSchema for Record.它们非常相似,但在处理所需字段等方面略有不同.

var recordSchema = new Schema({
   name: { type: "string", required: true },
   idNumber: { type: "number", required: true },
   content: { type: "string" }
})

所以对于我的Record模型,我现在有两个模式.一个用于JSONschema,另一个用于处理Mongo读/写.

我正在寻找一种方法来削减MongoSchema,任何建议?

最佳答案 也许这似乎是从条目中导入你的ajv架构并将它放在mongoose架构中.
https://www.npmjs.com/package/mongoose-ajv-plugin

点赞