Hapi AssertionError:如果没有路径参数,则无法设置路径参数验证:GET

时间:2019-03-18 07:50:31

标签: javascript reactjs hapijs

这是我尝试使用hapi v17时发生的。

这是我的终点

{ method: 'GET', path: '/admin/pagetypes', handler: Handlers.index, config: { description: 'get page types', tags: ['api'], auth: { strategy: 'standard', scope: 'admin' }, validate : { params : { p: Joi.number().default(0), message: Joi.string().empty(''), filter: Joi.string().empty(''), keyword: Joi.string().empty(''), by: Joi.string().empty(''), field: Joi.string().empty('') } } } },

启动我的hapi服务器时,它会显示

  

{AssertionError [ERR_ASSERTION]:如果没有路径参数,则无法设置路径参数验证:GET / admin / pagetypes       在新的module.exports.internals.Route(/Users/computer/Documents/proj/api/node_modules/hapi/lib/route.js:128:14)

试图删除验证并运行,但这不是我想要的

1 个答案:

答案 0 :(得分:0)

您正在尝试验证路径参数,但是您的路径定义中没有参数。

此处:path: '/admin/pagetypes',

我认为您正在尝试验证将添加到您的路径中的查询参数,例如:/admin/pagetypes?p=1&message=Hello等。

如果是,请尝试此操作。这将验证您的查询参数。

{
    method: 'GET',
    path: '/admin/pagetypes',
    handler: Handlers.index,
    config: {
      description: 'get page types',
      tags: ['api'],
      auth: {
          strategy: 'standard',
          scope: 'admin'
      },
      validate : {
        query : {
          p: Joi.number().default(0),
          message: Joi.string().empty(''),
          filter: Joi.string().empty(''),
          keyword: Joi.string().empty(''),
          by: Joi.string().empty(''),
          field: Joi.string().empty('')
        }
      }
    }
  },

要验证路径参数,您需要为路径定义添加一些动态值,例如

path: '/admin/pagetypes/{pageId}',

pageId 这是一个路径参数,您可以使用 validate.params来验证该参数。

Here is the reference