Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 有效负载上的Joi验证,其中值名称具有连字符_Node.js_Joi_Hapi - Fatal编程技术网

Node.js 有效负载上的Joi验证,其中值名称具有连字符

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

正如它在标题中所说的那样,我无法让joi验证在我的有效负载中的一个值上工作,而在它的名称中有一个hypen。该值称为“搜索类型”。我的验证是这样的

  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.”是方括号后的意外标记。必须使用“搜索类型”而不是搜索类型。我在实验室测试过