2015-10-09 2 views
1

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

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 (последняя)

ответ

1

AFAIK the 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'); 

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

+1

Учебное пособие должно быть обновлено. – stj

+0

Отлично! Я еще раз посмотрел на учебник и заметил неправильный синтаксис на стр. 10: '.pathParam ('id', .pathParam ('id', firstCollectio ...' – reoh

+0

также должен быть исправлен к настоящему времени – stj

0

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

Причина ошибки в этом документе: Я следил за Foxx tutorial, который не использует joi.