使用joi之类的隔离数据验证非常简单。但是解决依赖于其他模型的验证的一种好方法是什么,例如以下集合:
项目:
[
{_id: ".....", title: "Product 1", in_stock: 3},
{_id: ".....", title: "Product 2", in_stock: 10},
....
]
还有一个“订单”请求,例如:
{
items:[
{_id: "....", quantity: 3},
{_id: "....", quantity: 6},
...
]
}
现在,我要检查订单请求中的所有项目是否都有库存(数量<=相应项目的in_stock)。解决这个问题的好方法是什么?
答案 0 :(得分:0)
我自己也遇到了同样的问题 最简单的解决方案是使用内置的验证机制的猫鼬,这样您就不必 需要继续在您的应用程序中创建很多模式 它会使其健壮性降低,并且随着您的成长,代码实际上会变得很难维护
当您使用服务器数据库连接引擎(如mongojs)时,建议使用Joi 因为它没有适当的验证机制
另一方面,mongoose是一个非常快速且强大的mongoDb包装器,它带有所有可能的CRUD,索引聚合和Schema创建。(您可以简单地使用mongoose validates集成您的验证并使Schema居中并编写代码多余的
使用猫鼬验证器属性并使用正则表达式创建函数以检查白名单 如果用户输入不符合您的要求,则抛出错误