ArangoDB Foxx pathParam не определен

Создал новое приложение Foxx с веб-интерфейсом и добавил следующий маршрут:

controller.get('/names/:name', function (request, response) {
  var name = request.params('name');

  response.json(db._query(
    "FOR x IN collection"+
      " FILTER x.name == " + name +
      " RETURN x"
    ).toArray());
})
.pathParam('name', { // line 112
  description: 'A name value to search for',
  type: 'String'
})
.errorResponse(ArangoError, 404, 'Data not found');

Это дает ошибку, указывающую на строку 112, и предотвращает запуск приложения:

http://puu.sh/kEx6h/5641b92739.png

Это нормально работает, если убрать функцию .pathParam.

Как я могу это исправить / что я делаю не так? Я использую свежую установку с версией 2.6.9 (последняя)


person reoh    schedule 09.10.2015    source источник


Ответы (2)


AFAIK, вложенный атрибут type во втором параметре .pathParam () был изменен в версии 2.5 для использования joi. Поэтому его нужно изменить на:

.pathParam('name', { // line 112
  description: 'A name value to search for',
  type: joi.string() // this line needs changing
})

Кроме того, вам необходимо заранее require joi в контроллере, т.е.

var joi = require('joi');

Это руководство действительно устарело и требует исправления.

person stj    schedule 12.10.2015
comment
Большой! Я еще раз просмотрел руководство и заметил неправильный синтаксис на странице 10: .pathParam('id', .pathParam('id', firstCollectio... - person reoh; 12.10.2015
comment
также должны быть исправлены к настоящему времени - person stj; 12.10.2015

Итак, согласно последним документам по контроллеру, похоже, что использование joi требуется.

Причина ошибки заключалась в том, что я следил за учебником по Foxx, который не используйте дзеи.

person reoh    schedule 10.10.2015