node.js - 如何对 Id 字段执行验证?
问题描述
我有猫鼬模式,我在其中调用Id
了字段,并且我为所有请求设置了Id
必填字段。GET, PUT, POST and DELETE
所以我有一种情况,Id
获取、放置和删除请求是强制性的,但我必须使请求Id
不是强制性的POST
。我该怎么做?有什么帮助吗?
解决方案
@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 属性,否则错误将被填满。因此,在消费期间,我添加了错误以确保正确处理我的错误。
推荐阅读
- django - Atom 文本编辑器终端无法正常工作
- javascript - 如何使用节点 js 从包 json 文件更新脚本
- mysql - 链接到 MySQL 的服务。使用 ICU 使用源编码 UTF-8 转换无效输入时出错
- reactjs - 如何在反应中显示 API 错误句柄?
- ambiguous-grammar - 下面的语法是否有歧义,如果是下面的明确语法是什么
- java - 如何将 EditText 值转换为整数
- opencv - 查找形状内没有负区域的轮廓
- c++ - 使用旋转函数旋转整个数组
- python - 如何将过滤后的字符串附加到 Python 中的新列表?
- django - 无法通过 ubuntu18.04 中的 url 连接到 mongodb