2016-07-07 5 views
1

私は現在、ArangoDB v2.8からv3.0.1へ私のコードを移行しようとしています。私のような簡単なルートがあります。Foxxルータだけで動作しません

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

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

を、私のベースURLは次のとおりです。

そしてもちろん、私のルータはmanifest.json

"main": "index.js",などに登録されているが、私はしようとしているとき /_db/ilearn/api/helloを介してアクセスするには、私は404 "unknown path '/api/hello'"を取得しています。

私はすべての可能な方法でURLを変更しようとしましたが、何も役に立ちません。私はここで間違って何をしていますか?

ありがとう

答えて

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

+1

あなたは正しいです!私はちょうど、これを逃したと思います。移行ガイドのmodule.context.useメソッドを使用してルータを明示的にマウントする必要があります。これがここの例のhttps://docs.arangodb.com/3.0/Manual/Foxx/Migrating2x/Controllers/index.htmlにも置かれていれば素晴らしいことでしょう。ありがとう、トン! – artnikpro

+0

@artnikpro元の草案にありましたが、私たちのテスト担当者は、マニフェストのコントローラセクションをルータを必要とするメインファイルに置き換えることで移行ガイドを開始するので混乱していました。それらを2回マウントします。 –

関連する問題