如何解决MEAN栈项目结构疑惑
我正在开发一个基于 MEAN 堆栈的应用程序,我对文件结构有一些疑问,我正在考虑三个选项:
- 由 Apache 和 NodeJS 上的 REST API 提供的前端(Angular)按端口(80/443 和 8000)划分
- 由 Apache 和 REST API 在 NodeJS 上提供的前端(Angular)按子域(www 和 api)划分
- 由 NodeJS 提供的前端(Angular)和 REST API 按路由(/page 和 /api)划分
我在网上搜索过,但什么也没找到
解决方法
就我个人而言,我会选择您列表中的最后一个选项:“由 NodeJS 提供的前端(Angular)和 REST API 按路由(/page 和 /api)划分”。
我最近在这里看到一个 answer 说:
当您提供 node.js 应用程序时,请注意您是自己的 Web 服务器的作者。您的应用程序中的任何潜在错误都是互联网上可直接利用的错误。有些人(理所当然地)对此感到不舒服。
在您的 node.js 应用程序前面添加一层 Apache 或 Nginx 意味着您在实时互联网上拥有一个经过实战测试、安全加固的软件,作为您应用程序的接口。它增加了一点延迟(反向代理),但大多数人认为这是值得的。
这曾经是 node.js 早期的标准建议。但是现在也有一些站点和 Web 服务将 node.js 直接暴露给 Internet。 http.Server 模块现在在互联网上经过了相当好的实战测试,值得信赖。
关于安全性,这对我说你不应该在你的 Node 应用程序前面需要 Apache 或 Nginx 之类的东西。
就文件结构的看法而言,我选择这个选项也只是因为我在很多地方工作过,他们已经这样做了,并且它使与 API 的交互变得简单、可预测且易于内部使用以及想要使用 API 的外部各方(我是使用 api.mydomain.com 或 mydomain.com/api/ 的公司的忠实粉丝)。
不过我猜这取决于偏好。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。