Nodejs - Joi 检查字符串是不是在给定列表中

     2023-03-11     117

关键词:

【中文标题】Nodejs - Joi 检查字符串是不是在给定列表中【英文标题】:Nodejs - Joi Check if string is in a given listNodejs - Joi 检查字符串是否在给定列表中 【发布时间】:2017-05-15 11:26:40 【问题描述】:

我使用Joi package 进行服务器端验证。我想检查给定字符串是否在给定列表中或不在给定列表中。(为值定义黑名单或白名单) sth like an "in" or "notIn" function.我该怎么做?

var schema = Joi.object().keys(
    firstname: Joi.string().in(['a','b']),
    lastname : Joi.string().notIn(['c','d']),
);

【问题讨论】:

【参考方案1】:

您正在寻找validinvalid 函数。 v16:https://hapi.dev/module/joi/api/?v=16.1.8#anyvalidvalues---aliases-equal v17:https://hapi.dev/module/joi/api/?v=17.1.1#anyvalidvalues---aliases-equal

从 Joi v16 开始,validinvalid 不再接受数组,它们采用可变数量的参数。

你的代码变成了

var schema = Joi.object().keys(
    firstname: Joi.string().valid(...['a','b']),
    lastname: Joi.string().invalid(...['c','d']),
);

如果没有从数组中获取值,也可以直接作为 .valid('a', 'b') 传入 (-:

【讨论】:

在 joi/hapi 中没有有效或无效的选项:| @BadriDerakhshan:如果你说的是@hapi/joi,那么就没有@hapi/joi了!该软件包上个月已弃用,Joi 正式回归 Joi。 (npmjs.com/package/@hapi/joi)(@hapi/joi 中也存在有效和无效)- 这有点令人沮丧,因为去年用户必须从 Joi 切换到 @hapi/joi 并在一年内再次回到 Joi :-)跨度> 【参考方案2】:

怎么样:

var schema = Joi.object().keys(
    firstname: Joi.string().valid(['a','b']),
    lastname : Joi.string().invalid(['c','d']),
);

还有别名:.allow 和 .only

和 .disallow 和 .not

【讨论】:

这不再起作用,因为“有效”不再接受数组类型的参数

在 PostgreSQL 函数中,是不是可以检查列值是不是与给定参数值匹配?

】在PostgreSQL函数中,是不是可以检查列值是不是与给定参数值匹配?【英文标题】:InaPostgresSQLfunction,isitpossibletocheckifacolumnvaluematchesagivenparametervalue?在PostgreSQL函数中,是否可以检查列值是否与给定参数值匹配?【发布时间】:2... 查看详情

检查给定行和列总和是不是只有 2 行的二进制矩阵

】检查给定行和列总和是不是只有2行的二进制矩阵【英文标题】:Checkifbinarymatrixexistswithonly2rowsforgivenrowandcolumnsum检查给定行和列总和是否只有2行的二进制矩阵【发布时间】:2019-02-0916:47:28【问题描述】:我有一个只有2行N列的... 查看详情

检查给定列表中的元素是不是存在于 DataFrame 的数组列中

】检查给定列表中的元素是不是存在于DataFrame的数组列中【英文标题】:TocheckifelementsinagivenlistpresentinarraycolumninDataFrame检查给定列表中的元素是否存在于DataFrame的数组列中【发布时间】:2021-04-0122:06:09【问题描述】:我有以下适... 查看详情

SQL检查组是不是包含给定列的某些值(ORACLE)

】SQL检查组是不是包含给定列的某些值(ORACLE)【英文标题】:SQLcheckifgroupcontainescertainvaluesofgivencolumn(ORACLE)SQL检查组是否包含给定列的某些值(ORACLE)【发布时间】:2017-06-2013:02:02【问题描述】:我有包含这些记录的表audit_log... 查看详情

如何检查给定的字符串是不是是真实单词?

】如何检查给定的字符串是不是是真实单词?【英文标题】:HowcanIcheckifastringgivenisarealword?如何检查给定的字符串是否是真实单词?【发布时间】:2017-07-0302:51:41【问题描述】:我正在制作一个在VisualBasic中解决字谜的程序。如... 查看详情

将现有字符匹配成单词并检查单词是不是出现在给定单词列表中?

】将现有字符匹配成单词并检查单词是不是出现在给定单词列表中?【英文标题】:Matchexistingcharacterstogetherintowordsandcheckifthewordsappearinthegivenwordlist?将现有字符匹配成单词并检查单词是否出现在给定单词列表中?【发布时间】:2... 查看详情

给定一个字符串序列,检查它是不是匹配一个模式

】给定一个字符串序列,检查它是不是匹配一个模式【英文标题】:Givenastringsequenceofwords,checkifitmatchesapattern给定一个字符串序列,检查它是否匹配一个模式【发布时间】:2016-03-2322:03:55【问题描述】:我在一次采访中遇到了这... 查看详情

根据列是不是包含给定字符串设置标志列

】根据列是不是包含给定字符串设置标志列【英文标题】:Settingflagcolumndependingonwhethercolumncontainsagivenstring根据列是否包含给定字符串设置标志列【发布时间】:2019-05-1411:29:35【问题描述】:谁能明白为什么这不起作用?它正在... 查看详情

如何查找给定列是不是存在唯一键约束

】如何查找给定列是不是存在唯一键约束【英文标题】:Howtofindwhetheruniquekeyconstraintexistsforgivencolumns如何查找给定列是否存在唯一键约束【发布时间】:2013-11-2004:18:56【问题描述】:我正在编写一个perl脚本,我需要在其中运行更... 查看详情

给定一个数字,检查数字是不是形成一个加法方程?

...?【发布时间】:2014-03-1719:38:26【问题描述】:给定一个字符串S,我想知道是否有不重叠的子字符串A、B和C在S中,因此当子字符串被解释为十进制数时,等式A+B=C成立。示例:对于S=17512,答案是肯定的,因为1 查看详情

如何检查给定字符串是不是是Java中的有效JSON

】如何检查给定字符串是不是是Java中的有效JSON【英文标题】:HowtocheckwhetheragivenstringisvalidJSONinJava如何检查给定字符串是否是Java中的有效JSON【发布时间】:2012-04-2719:53:08【问题描述】:如何在Java中验证JSON字符串?或者我可以... 查看详情

TypeError:Joi.validate 不是函数

...不起作用,因为我的routes/user.js的结构不同。另外,我是Nodejs的新手。我需要帮助来更改routeHelper.js中的constresult=Joi.val 查看详情

如何检查给定的字符串是不是是 Windows 下的合法/有效文件名?

】如何检查给定的字符串是不是是Windows下的合法/有效文件名?【英文标题】:HowdoIcheckifagivenstringisalegal/validfilenameunderWindows?如何检查给定的字符串是否是Windows下的合法/有效文件名?【发布时间】:2010-09-0822:22:20【问题描述】... 查看详情

使用 Deque 检查给定字符串是不是为回文

】使用Deque检查给定字符串是不是为回文【英文标题】:CheckwhetheragivenstringispalindromeusingDeque使用Deque检查给定字符串是否为回文【发布时间】:2021-11-3021:27:52【问题描述】:我编写了一个python代码来检查给定的字符串是否是回文... 查看详情

检查给定字符串是不是等效于给定字符串集中的至少一个字符串的有效方法

】检查给定字符串是不是等效于给定字符串集中的至少一个字符串的有效方法【英文标题】:Efficientwaytocheckifagivenstringisequivalenttoatleastonestringinthegivensetofstrings检查给定字符串是否等效于给定字符串集中的至少一个字符串的有效... 查看详情

使用数字格式检查给定字符串是不是为有效货币

】使用数字格式检查给定字符串是不是为有效货币【英文标题】:CheckingifagivenStringisavalidcurrencyusingnumberformat使用数字格式检查给定字符串是否为有效货币【发布时间】:2014-03-1106:04:35【问题描述】:我有以下字符串:Stringstr1="$1... 查看详情

如何检查单词是不是以给定字符开头?

】如何检查单词是不是以给定字符开头?【英文标题】:Howtocheckifawordstartswithagivencharacter?如何检查单词是否以给定字符开头?【发布时间】:2013-03-0918:06:08【问题描述】:我有一个Sharepoint项目的列表:每个项目都有一个标题、... 查看详情

检查列是不是包含类型字符串(对象)

】检查列是不是包含类型字符串(对象)【英文标题】:Checkifcolumncontainstypestring(object)检查列是否包含类型字符串(对象)【发布时间】:2018-05-0619:11:43【问题描述】:我有一个包含数千行和数百列的庞大数据集。其中一列包含... 查看详情