【问题标题】:Maintaining and organizing ExpressJS routes维护和组织 ExpressJS 路由
【发布时间】:2015-08-19 08:33:41
【问题描述】:

我是 NodeJS 和 Express 的新手,从 PHP 迁移过来。我一直在关注如何使用 Express 构建 Web 应用程序的在线教程,这让我大开眼界。所以我决定只用 JavaScript 做一个项目。问题是在 Express 中添加了一些路线定义后,我无法跟踪我的 Express 路线,并且担心随着时间的推移它会变得更大。目前我有将近 45 行(是的,我有很多路线,一些提供 HTML 模板文件,另一些只为我的 Angular 前端返回 JSON)。有没有更好的方法在它失控之前进行管理?

【问题讨论】:

  • 你用的是什么版本的快递?

标签: javascript node.js express routes


【解决方案1】:

组织路由的一种可能方法是根据功能将路由分组,然后为这些组创建单独的模块,然后将这些模块导入主应用程序文件(app.js 或 server.js)。例如,我正在开发一个具有交易功能、现金存款功能以及其他一些常见任务的项目。因此,我为这些路由创建了不同的模块,并将它们放在一个名为 routes 的单独目录中。

例如,我有一个名为 site.js 的模块用于所有常见任务。

module.exports = function(express,app,passport,router){

    router.get('/auth/facebook',passport.authenticate('facebook'));
    //other commin routes   

};

在我的 app.js 文件中,我声明了路由器,然后传入包含路由的模块。

var router = express.Router();
app.use('/',router);

require('./routes/site.js')(express,app,passport,router);

【讨论】:

  • 我已经尝试过这种方法,但这正是我想要避免的。它确实有一点帮助,但是有了 Shanks 的模块,我只需要我的 app.js 中的一行代码,但感谢您的建议。非常感激!再次抱歉,我不能投票给你的答案,我是新来的。
【解决方案2】:

如果您使用的是 Express 版本 4,我编写了一个模块来以更简洁、不臃肿的方式处理路由。结帐Exroute Module,如果它符合您当前的需求,如果不符合,请提供一些反馈。

【讨论】:

  • 哇,这真的很方便。虽然它有点自以为是,但它确实适合我的用例。我喜欢这样一个事实,即我可以将所有路由文件转储到一个文件夹中,并在 app.js 中有一个单行代码来完成所有工作。抱歉,我不能对此表示赞同,但我很荣幸 ;)
猜你喜欢
  • 2014-01-19
  • 2021-09-06
  • 1970-01-01
  • 2017-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多