【问题标题】:ArangoDB Foxx pathParam is undefinedArangoDB Foxx pathParam 未定义
【发布时间】:2015-10-09 23:25:44
【问题描述】:

使用 Web UI 制作了一个新的 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 行的错误并阻止应用程序运行:

如果.pathParam 函数被删除,这运行正常。

我该如何解决这个问题/我做错了什么?我正在使用 2.6.9 版(最新)的全新安装

【问题讨论】:

    标签: arangodb foxx


    【解决方案1】:

    AFAIK .pathParam() 的第二个参数中的type 子属性在 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');
    

    该教程确实已过时,需要修复。

    【讨论】:

    • 太棒了!我又看了一遍教程,发现第 10 页的语法不正确:.pathParam('id', .pathParam('id', firstCollectio...
    • 现在应该也修复了
    【解决方案2】:

    所以,根据最新的controller docs,看来现在需要使用joi了。

    错误的原因是,我关注了不使用 joi 的 Foxx tutorial

    【讨论】:

      猜你喜欢
      • 2021-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多