Arangodb Foxx路由器就是不';行不通

Arangodb Foxx路由器就是不';行不通,arangodb,foxx,Arangodb,Foxx,我目前正试图将我的代码从Arangodbv2.8迁移到v3.0.1,但路由问题一直困扰着我。我有一条简单的路线,如: const router = require('@arangodb/foxx/router')() router.get('/hello', function (req, res) { res.json({ hi: 'world' }) }) 我的基本URL是: 当然,我的路由器在manifest.json中注册为“main”:“index.js”, 但是当我试图通过/

我目前正试图将我的代码从Arangodbv2.8迁移到v3.0.1,但路由问题一直困扰着我。我有一条简单的路线,如:

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

router.get('/hello', function (req, res) {
  res.json({ hi: 'world' })
})
我的基本URL是:

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

但是当我试图通过
/\u db/ilearn/api/hello
访问它时,我得到了404
“未知路径”/api/hello'

我尝试过用各种可能的方式改变URL,但没有任何帮助。我做错了什么


谢谢

与控制器不同,路由器不会自动安装。这允许将它们作为导出传递并任意嵌套。“main”文件也不注册路由器(就像控制器的“controllers”文件一样),只指定服务的入口点

为了安装路由器,您需要使用
模块.context.use
功能。您可以直接在服务的挂载点上挂载路由器,方法是省略路径并只传递路由器:
module.context.use(router)

如果您还没有看过,我还建议您查看迁移指南,其中介绍了从2.x迁移到3.0时可能遇到的其他“问题”:


迁移控制器一章中特别介绍了这一点:

你说得对!我想我错过了这个
路由器需要使用module.context.use方法显式安装。
来自迁移指南。如果这也能放在这里的示例中,那就太好了。非常感谢@artnikpro它在最初的草稿中,但我们的测试人员发现它令人困惑,因为迁移指南一开始就用一个主文件替换清单中的控制器部分,该文件需要并装载路由器,因此如果您将这两个示例结合起来,最终将装载它们两次。