node.js - 如何将 ExpressJS 服务器与 Angular2 集成

标签 node.js express angular

我尝试使用 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 数据并使用它来填充您的应用程序。发送 POSTPUTDELETE 请求以添加或操作数据(假设您计划拥有后端数据库)。

这通常在您的域中表示的方式是让 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/

相关文章:

node.js - 在控制台上获取响应而对 agent.add() 没有响应

mysql - Nodejs Sequelize 和passport Js,在注册用户时卡在执行查询上

javascript - res.setHeader ("Set-Cookie", ...) 没有在 Node/Express 中设置 cookie

javascript - Angular - 模板驱动表单 - Controller 中的自定义验证器功能

javascript - Angular 2 ngIf 和 ngFor 组合

javascript - 为什么要关心 Node.js 中的尾随逗号?

node.js - 使用skipper-s3时如何添加ACL和Content-Type参数?

node.js - 编译时 tsc 忽略 index.d.ts 类型定义

angular - 如何从组件打开 ng-template 模态?

javascript - 我在 Node.JS 应用程序中使用路由,当我尝试从浏览器打开其中一条路由时,出现错误