Foxx路由器只是不起作用

时间:2016-07-07 17:20:42

标签: arangodb foxx

我目前正在尝试将我的代码从ArangoDB v2.8迁移到v3.0.1,并且我遇到了路由问题。我有一条简单的路线:

const router = require('@arangodb/foxx/router')()

router.get('/hello', function (req, res) {
  res.json({ hi: 'world' })
})

我的BASE网址是:

当然我的路由器在manifest.json注册为"main": "index.js",

但是当我尝试通过/_db/ilearn/api/hello访问它时,我收到404 "unknown path '/api/hello'"

我尝试过以各种方式更改网址,没有任何帮助。我在这里做错了什么?

由于

1 个答案:

答案 0 :(得分:1)

与控制器不同,路由器不会自动挂载。这允许将它们作为导出传递并随意嵌套它们。 “main”文件也不会注册路由器(如“控制器”文件为控制器执行的操作),而只是指定服务的入口点。

要安装路由器,您需要使用module.context.use功能。您可以通过省略路径并仅通过路由器直接在服务的挂载点上安装路由器:module.context.use(router)

如果您还没有看到它,我还建议您查看迁移指南,其中涵盖了从2.x迁移到3.0时可能遇到的其他“陷阱”:https://docs.arangodb.com/3.0/Manual/Foxx/Migrating2x/index.html

有关迁移控制器的章节中详细介绍了这个问题:https://docs.arangodb.com/3.0/Manual/Foxx/Migrating2x/Controllers/index.html