Hapi AssertionError: Невозможно установить валидацию параметров пути без параметров пути: GET - PullRequest
0 голосов
/ 18 марта 2019

Это произошло, когда я попытался перейти на 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('') } } } },

при запуске моего сервера хапи написано

{AssertionError [ERR_ASSERTION]: Невозможно установить валидацию параметров пути без параметров пути: GET / admin / pagetypes на новом module.exports.internals.Route (/ Пользователи / компьютер / Документы / proj / api / node_modules / hapi /lib / route.js: 128: 14)

Попытка удаления проверки, и она запускается, но это не то, что мне нужно

1 Ответ

0 голосов
/ 18 марта 2019

Вы пытаетесь проверить параметры пути, но в вашем определении пути нет параметров.

Здесь: 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 для проверки этого параметра.

Вот ссылка

...