Node.js と Express を使用して API を作成しています。私の API には、次の形式の GET メソッドがあります。
/api/v1/doSomething
/api/v1/doSomethingElse
私のコードは次のようになっています。
サーバー.js:
var app = express();
...
var routes = require('./routes')
routes.attachHandlers(app, '/api/v1')
ルート/index.js
...
module.exports.attachHandlers = function(app, context) {
//get a list of all the other .js files in routes
//for each route, require() it and call it myRoute
myRoute.attachHandlers(app, context)
}
ルート/some-route.js
...
module.exports.attachHandlers = function(app, context) {
app.get(context + '/doSomething', doSomething)
app.get(context + '/doSomethingElse', doSomethingElse)
}
...
事実上、コンテキストパス/マウントポイントをアプリに渡しています。ただし、誰かが次のようなルートを作成すると、コンテキストが失われます。
app.get('/doFoo', foo)
API のその部分をマウントする/api/v1/doFoo
のではなく、 on にし/doFoo
ます。このようにコンテキストパスを渡す必要は避けたいと思います。
app.useは、オプションのマウント パスへのミドルウェアのマウントをサポートしています。を使用して Express アプリケーション全体をマウント パスにマウントする方法について、オンラインで参照を見たことがありますapp.use
。これは私がやりたいことのように思えますが、それを行う方法や、それが私の特定のユースケースに最適なソリューションであるかどうかはわかりません.
要約すると、デフォルトで app.get() ルートを特定のプレフィックスでマウントしたいと考えています。これを行う最善の方法は何ですか?