1

我目前正在尝试将我的代码从 ArangoDB v2.8 迁移到 v3.0.1,但我被路线困住了。我有一条简单的路线,例如:

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

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

我的基本网址是:

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

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

我已尝试以所有可能的方式更改 URL,但没有任何帮助。我在这里做错了什么?

谢谢

4

1 回答 1

1

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

为了安装路由器,您需要使用该module.context.use功能。您可以通过省略路径并仅通过 router: 来直接在服务的挂载点上挂载路由器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

于 2016-07-08T09:23:39.570 回答