在 NodeJS 和 Express 中更好地处理路由器的简单方法

在 NodeJS 和 Express 中更好地处理路由器的简单方法

原文:https://medium.com/hackernoon/object-oriented-routing-in-nodejs-and-express-71cb1baed9f0

或者……如何把 OOP 酱放到你的功能后端

当我需要为移动或 web 应用程序提供后端服务时,Node 是我的首选。虽然 JS 不是我最喜欢的语言,但后端开发的总体方法比使用其他工具 Java EE 或 PHP 要好得多。 所以,当我还在等待 Swift 与官方服务器 API 组一起进行服务器端开发的官方方法时(希望在今年晚些时候看到一些东西,也许是 WWDC?),当我还在为一个新的副业项目编写后端服务时,我会尝试不同的模式。

在这篇短文中,我想与你分享我用来更好地处理服务路线的一个小模式。 这种模式背后的想法是将每个应用程序上下文(认证、用户配置文件管理和任何其他特定应用程序的功能)分组到不同的类中,这些类继承自一个基本的Router类。

此类公开一个构造,该构造将 Express 应用程序和公开路由服务的基本路径作为输入;还有这个名为services的阿哈类属性,我将返回这个特定路由公开的所有服务的列表。

让我带你看看基地的Router级:

很简单;我们简单地声明一个基本路由需要公开的所有服务的列表,然后分配一个需要调用的函数(以快速路由的形式,所以function route(req, res, next) {})。

例如,我们的 Auth 子类可能是:

正如您可以看到的路径,每个路由路径的形式如下:

  • 动词:是公开调用的 HTTP 方法(如果没有指定是GET,否则应该指定是不是POST,PUT等等)。)
  • 路径:是否公开了服务的路径(以任何明确请求的经典形式)

而值是您应该在子类中实现的函数的名称。

最后,您可以按如下方式分配和放置您的路线:

我们的AuthRouter公开的每个服务都可以在/users/auth 路径下获得(即http://server_url/users/auth/login/fb/xxxx)。

这很容易实现,也是在节点后端进行排序的好方法。

黑客中午是黑客如何开始他们的下午。我们是 @AMI 家庭的一员。我们现在接受投稿,并乐意讨论广告&赞助机会。

如果你喜欢这个故事,我们推荐你阅读我们的最新科技故事趋势科技故事。直到下一次,不要把世界的现实想当然!


本站为非盈利网站,作品由网友提供上传,如无意中有侵犯您的版权,请联系删除