【问题标题】:MEAN stack project structure doubtsMEAN堆栈项目结构疑问
【发布时间】:2021-05-02 04:44:14
【问题描述】:
我正在开发一个基于 MEAN 堆栈的应用程序,我对文件结构有一些疑问,我正在考虑三个选项:
- 由 Apache 服务的前端(Angular)和 NodeJS 上的 REST API 按端口(80/443 和 8000)划分
- Apache 服务的前端(Angular)和 NodeJS 上的 REST API 按子域(www 和 api)划分
- 由 NodeJS 提供的前端(Angular)和 REST API 按路由(/page 和 /api)划分
我在网上搜索过,但一无所获
【问题讨论】:
标签:
node.js
angular
server
mean-stack
directory-structure
【解决方案1】:
我个人会选择列表中的最后一个选项:“由 NodeJS 提供的前端(Angular)和 REST API 除以路由(/page 和 /api)”。
我最近在这里看到一个answer 说:
当您为 node.js 应用程序提供服务时,请注意您是您自己的 Web 服务器的作者。您的应用程序中的任何潜在错误都是互联网上可直接利用的错误。有些人(有理由)对此感到不舒服。
在您的 node.js 应用程序前面添加一个 Apache 或 Nginx 层意味着您在实时互联网上拥有一个经过实战考验、安全加固的软件,作为您的应用程序的接口。它增加了一点延迟(反向代理),但大多数人认为这是值得的。
这曾经是 node.js 早期的标准建议。但是现在也有一些网站和 Web 服务将 node.js 直接暴露在互联网上。 http.Server 模块现在在 Internet 上经过了充分的实战测试,值得信赖。
关于安全性,这告诉我你不应该在你的 Node 应用程序前面使用 Apache 或 Nginx 之类的东西。
就文件结构的观点而言,我会选择此选项也只是因为我曾在许多地方工作过,他们已经完成了此操作,并且它使与 API 的交互变得简单、可预测且易于访问以及想要使用 API 的外部方(我是使用 api.mydomain.com 或 mydomain.com/api/ 的公司的忠实粉丝)。
不过我猜这取决于偏好。