gpt4 book ai didi

javascript - 是否有用于 Koa.js 的 Express 式嵌套路由器?

转载 作者:搜寻专家 更新时间:2023-10-31 23:12:41 24 4
gpt4 key购买 nike

是否存在提供 Express 式嵌套路由器的库?像这样:

var koa = require('koa');
var app = koa();
var Router = require('???');

var restApiRouter = Router();
restApiRouter.get('/', function*() {
// respond to /api/
});
restApiRouter.get('/messages', function*() {
// respond to /api/messages
});

var appRouter = new Router();
appRouter.get('/', function*() {
// respond to /
});
// redirects all /api/* requests to restApiRouter
appRouter.use('/api', restApiRouter);

app.use(appRouter);

如果没有,在其他文件中封装公共(public)路径路由的最佳做法是什么?

最佳答案

之前的回答没有具体说明如何嵌套路由器。这是一个真实世界的例子,分成几个 Controller 文件。

首先,我们将一些 API 路由定义到 controllers/api/foo.js 文件中:

var router = require('koa-router')();

router.get('/', function* () {
// Return a list of foos
});

router.get('/:id', function* () {
// Return a specific foo
});

module.exports = router;

然后,在您的应用程序路由器上,您可以将其嵌入到文件 controllers/index.js 中:

var router = require('koa-router')();

// Create a new route
router.get('/', function* () {
this.body = 'Home page';
});

// Nest previous API route
router.get('/api/foo', require('./api/foo').routes());

module.exports = router;

最后,只需在您的应用程序 index.js 中使用路由器:

var koa = require('koa');
var app = koa();
app.use(require('./controllers').routes());
app.listen(process.env.PORT || 3000);

关于javascript - 是否有用于 Koa.js 的 Express 式嵌套路由器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29645535/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com