首页 > 解决方案 > 如何对 Id 字段执行验证?

问题描述

我有猫鼬模式,我在其中调用Id了字段,并且我为所有请求设置了Id必填字段。GET, PUT, POST and DELETE

所以我有一种情况,Id获取、放置和删除请求是强制性的,但我必须使请求Id不是强制性的POST。我该怎么做?有什么帮助吗?

标签: node.jsmongoose

解决方案


@gagan,这些更有可能是您从使用您的 API 的用户那里获得的输入。您添加的验证器用于在 Mongo 中插入文档。所以两者是不同的集合。您可能必须在用户输入(可能是 req.body)上添加验证,以确保在将输入插入数据库之前输入正确。

您可以使用条件语句(如 if)添加验证,也可以选择使用第三方库。有一个可用的 TP 库,它整洁、简洁且易于使用。名字是乔伊:-

这是您如何使用它的方法:-

const Joi = require('joi');

function validateUser(user) {
  const schema = {
    name: Joi.string().min(3).required(),
    id: Joi.number().integer(),
    age: Joi.number.integer().min(18) // Incase you want only 18+ age users
  };

  return Joi.validate(user, schema);
}

在消费端:-

const { error } = validateUser(req.body);

注意:- Joi 有两个属性“错误和值”,其中只有一个是有价值的。因此,如果有人发送了有效的对象,您将得到 value 属性,否则错误将被填满。因此,在消费期间,我添加了错误以确保正确处理我的错误。


推荐阅读