Node.js 有效负载上的Joi验证,其中值名称具有连字符
正如它在标题中所说的那样,我无法让joi验证在我的有效负载中的一个值上工作,而在它的名称中有一个hypen。该值称为“搜索类型”。我的验证是这样的Node.js 有效负载上的Joi验证,其中值名称具有连字符,node.js,joi,hapi,Node.js,Joi,Hapi,正如它在标题中所说的那样,我无法让joi验证在我的有效负载中的一个值上工作,而在它的名称中有一个hypen。该值称为“搜索类型”。我的验证是这样的 options: { validate: { payload: joi.object({ value1: joi.string().required(), value2: joi.string().required(), search-type: joi.string().req
options: {
validate: {
payload: joi.object({
value1: joi.string().required(),
value2: joi.string().required(),
search-type: joi.string().required()
}),
failAction: (request, h, err) => {
return h.redirect('/search').takeover()
}
}
}
options: {
validate: {
payload: joi.object({
value1: joi.string().required(),
value2: joi.string().required(),
searchType:['search-type'] joi.string().required()
}),
failAction: (request, h, err) => {
return h.redirect('/search').takeover()
}
}
}
我试着像这样把名字放在方括号里
options: {
validate: {
payload: joi.object({
value1: joi.string().required(),
value2: joi.string().required(),
search-type: joi.string().required()
}),
failAction: (request, h, err) => {
return h.redirect('/search').takeover()
}
}
}
options: {
validate: {
payload: joi.object({
value1: joi.string().required(),
value2: joi.string().required(),
searchType:['search-type'] joi.string().required()
}),
failAction: (request, h, err) => {
return h.redirect('/search').takeover()
}
}
}
但是“joi.”在它以linting标记并说“joi.”之后是一个意外的标记?使用
options: {
validate: {
payload: joi.object({
value1: joi.string().required(),
value2: joi.string().required(),
'search-type': joi.string().required()
}),
failAction: (request, h, err) => {
return h.redirect('/search').takeover()
}
}
}
由于这是Joi,我猜您不需要在其他任何地方访问该属性,但您可以使用
选项进行访问。验证['search-type']
而不是选项。验证。搜索类型
,因为-
将被解释为减法运算符。尝试搜索类型:[“search-type”]谢谢,但还是说“joi.”是方括号后的意外标记。必须使用“搜索类型”而不是搜索类型。我在实验室测试过