我尝试使用 NodeJS (Express) 作为服务器创建一个 angular2 应用程序。 问题是存在冲突,因为 Express 尝试使用自己的模板引擎并路由请求,而 Angular 也使用路由和 index.html 作为入口点。
如何整合两者?
最佳答案
通常,NodeJS/Express 将用于提供具有 Angular 可以使用的端点的 API。 NodeJS 仅作为后端,Angular 仅作为前端。
虽然可以从 NodeJS 服务器提供 Angular ,但这是一种资源浪费,因为大多数 Angular 站点都是完全静态的。也就是说,它们是可以从 S3 或 FTP 提供的 javascript、CSS 和图像,并通过服务获取所有动态内容(来自 Twitter 的推文、来自 S3 存储桶的图像、来自自定义 NodeJS 后端的数据等)。换句话说,不需要动态服务器端渲染。
我强烈建议保持这种方法。在像 S3 这样的静态存储主机上托管你的 Angular 应用程序,并使用 NodeJS 创建一个 REST API,你的应用程序可以通过 Angular 服务进行通信。发送 GET
请求以获取 JSON 数据。获取生成的 JSON 数据并使用它来填充您的应用程序。发送 POST
、PUT
和 DELETE
请求以添加或操作数据(假设您计划拥有后端数据库)。
这通常在您的域中表示的方式是让 http://yourdomain.com
指向您的 Angular 应用程序。然后,您的 Angular 应用程序将调用指向您的 Node API 的 http://yourdomain.com/api/
或 http://api.yourdomain.com
。您可以配置您的 DNS 来执行这些操作,您的代码中不需要物理子目录。
关于node.js - 如何将 ExpressJS 服务器与 Angular2 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40164777/