Я пишу API, используя Node.js и Express. В моем API есть методы GET формы:
/api/v1/doSomething
/api/v1/doSomethingElse
Мой код выглядит примерно так:
server.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)
}
маршруты/некоторые-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
на /doFoo
. Я бы хотел, чтобы вам не пришлось проходить путь контекста таким образом.
app.use поддерживает установку промежуточного программного обеспечения на дополнительном пути монтирования. Я видел ссылки онлайн для установки всего приложения Express на пути монтирования с помощью app.use
. Это похоже на то, что я хочу сделать, но я не уверен, как это сделать или если это лучшее решение для моего конкретного случая использования.
Подводя итог - я хочу установить мои маршруты app.get() с определенным префиксом по умолчанию. Какой лучший способ сделать это?