在这篇文章中,我们对Node.js的Hapi和Express框架进行了一次有趣的比较研究,包括代码的外观和执行方式。
在Raygun,在我们实施任何新工具之前,我们总是运行性能测试并喜欢分享结果。这次我们将Hapi与Express进行比较,以帮助您在Node.js框架上做出更明智的选择。
Node已经成为软件开发行业的主要产品。过去几年中JavaScript越来越流行,推动了Node在安装基础方面的进步。JavaScript和Node可能首次提供使用单一语言开发整个n层应用程序的机会。
节点速度很快,并且JavaScript无处不在。这是一个完美的比赛。
因为它与所有的网络平台,节点为应用程序提供的要领:请求和响应对象,方法来操作的HTTP请求,并且多个(但不是太多更多)。“纯粹”节点应用程序的速度很快,但缺乏中间件,路由和插件的支持,从而减少了现代Web应用程序所需的代码量。这是Web框架闪耀的地方。
这是两个流行框架之间的战斗故事:Hapi和Express。
Hapi与Express:比较
这两个框架比共同点有更多共同之处。但是,如果您在项目之间做出选择,则应考虑一些关键差异。
Hapi(简称HAPPAPI,发音为“happy”)是一个抽象了现有NodeAPI的新框架。Express更老,更成熟。Express代码看起来更像本地Node。
Hapi的核心更多
在某些情况下,Express需要中间件来执行Hapi内部处理的任务。表格处理就是一个很好的例子。
Hapi解析表单数据并将其公开在请求对象上。相反,Express需要body-parser中间件提供相同的功能。
速度更接近节点
Express比Hapi少一些观点,因为它不像Node那样抽象。这两个框架都具有可扩展性和适应性。但是,Express“感觉”更像是一个本地Node应用程序。Hapi提供了更多来自Node的抽象。长时间的节点开发人员可能更喜欢Express的熟悉程度,或者他们可能会喜欢Hapi提供的抽象。
Hapi使用插件和快速使用中间件
Express使用中间件为开发人员提供访问请求/响应管道的权限。开发人员可以访问节点req和res请求/响应对象。Express应用程序将中间件“链接”在一起,以处理请求和响应。每个中间件组件都有一个明确定义的工作,将