如何在没有nodejs中所有路由的一个长文件的情况下进行路由?
|
使用此链接作为参考https://github.com/visionmedia/express/tree/master/examples/route-separation对“可以完成”
我不使用快递。我以它们为例。
我想做这样的事情,但“简单” ...
如何避免在一个文件中将所有路线都声明为一个复杂的长列表?我可以通过将路由器传递到我的模块中,然后将所有代码都包含在一个目录中来定义它们吗……好吧,我会遇到一个长文档,只包含“ require”,例如index.js ,对于这个〜至少我的构建脚本可以为我重建,但最好不要在我的主文件中为我可能添加的每条路由重建。
因此,例如,他们使用以下代码:
// General
app.get(\'/\', site.index);
// User
app.all(\'/users\', user.list);
app.all(\'/user/:id/:op?\', user.load);
app.get(\'/user/:id\', user.view);
app.get(\'/user/:id/view\', user.view);
app.get(\'/user/:id/edit\', user.edit);
app.put(\'/user/:id/edit\', user.update);
// Posts
app.get(\'/posts\', post.list);
我想避免在我的app.js中列出这样的列表。我想让每个文件都知道该文件的路由。
这是我想要做的:(请不要批评代码,我将其变得非常简单,所以请确保以说明的方式说明我的代码)
//app.js
var router = require(\'./myRouter.js\')
var includes = require(\'./routes/*.js\').register(router)
// do some stuff here with an https server and start the server here
和
//./routes/user.js
var myRouter;
exports.register(router){
myRouter = router;
}
router.addRoute(/* here I do the magic associated with this route */)
我可以简单地做到这一点吗?我在这里想念什么?
我尚未编写此代码,因为我一直很确定自己会以错误的方式进行操作。
并且,如果我将不得不在/routes/
文件夹中使用类似index.js
的东西,是否可以使用我在附加的.register(router)
的代码中演示的相同概念,以便我可以递归地传递该信息?那行得通吗?
没有找到相关结果
已邀请:
2 个回复
坊岔埠绵
文件,并使用
这是一个文件夹。
之所以起作用,是因为如果您在文件夹中“ 9”,则默认情况下将加载“ 3”。 如果您有很多路由,则可能需要根据约定加载它们
这将加载所有非\“ index.js \”的.js文件,因此在路由文件时,
文件夹中的任何文件都将加载并运行。
屠创氓读叔