本文档详细介绍了将 Express 应用定义(路由、中间件等)与网络相关代码(服务器创建、端口配置、协议处理)分离的推荐做法。这种架构模式在可测试性、代码组织和应用程序灵活性方面带来了显著的好处。
有关更广泛的项目结构策略的信息,请参阅 基于组件的架构。
Express 应用/服务器分离是一种基本架构模式,我们在其中保持清晰的界限
这种分离遵循单一职责原则,将网络关注点与应用程序逻辑分开。
来源: sections/projectstructre/separateexpress.basque.md5-7
实现遵循一个简单但强大的结构
这样就在应用程序的功能及其网络暴露方式之间实现了清晰的分离。
来源: sections/projectstructre/separateexpress.basque.md11-20 sections/projectstructre/separateexpress.basque.md20-54
Express 应用文件包含应用程序行为的定义,包括
来源: sections/projectstructre/separateexpress.basque.md11-18
服务器文件处理网络相关事宜
来源: sections/projectstructre/separateexpress.basque.md20-35
| 优点 | 描述 |
|---|---|
| 可测试性 | 使用 supertest 等工具测试 API 路由,无需网络开销 |
| 职责分离 | 应用程序逻辑与网络配置之间的清晰界限 |
| 部署灵活性 | 同一 API 可以在不同的网络条件下部署 |
| 维护 | 当网络和应用程序关注点独立演变时,更易于维护 |
| 模块化 | 使 Express 应用程序更具模块化和可重用性 |
来源: sections/projectstructre/separateexpress.basque.md5-7
此分离最显著的好处之一是能够在不启动网络服务器的情况下测试 API 路由。
使用 supertest 等测试库,您可以
使用 supertest 进行测试的示例
来源: sections/projectstructre/separateexpress.basque.md56-102
在实现此模式时,请牢记以下注意事项
| 文件 | 职责 |
|---|---|
| app.js | 路由、中间件、Express 配置、应用程序逻辑 |
| bin/www | 服务器创建、端口设置、SSL/TLS 配置、服务器生命周期 |
来源: sections/projectstructre/separateexpress.basque.md11-54
此模式通过提供一种导出 Express 应用的干净方式,与基于组件的架构方法(2.1)相辅相成。在基于组件的结构中,每个组件可能有自己的路由,这些路由会在主 app.js 文件中组合。
来源: sections/projectstructre/breakintcomponents.basque.md1-8
Express 应用/服务器分离模式是一种简单而强大的架构选择,它为您的 Node.js 应用程序带来了显著的好处。通过清晰地将应用程序逻辑与网络关注点分离,您可以创建更易于测试、维护和灵活的应用程序。
此模式推荐用于所有 Express 应用程序,无论其规模大小,因为它奠定了良好的架构基础,能够支持您的应用程序的成长。
刷新此 Wiki
最后索引时间2025年4月17日(c0b71c)