我尝试使用NodeJS(Express)创建一个angular2应用程序作为服务器。 问题是Express存在冲突,因为Express尝试使用自己的模板引擎并路由请求,而angular也使用routes和index.html作为入口点。
我如何整合两者?
答案 0 :(得分:14)
通常,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应用。然后,您的角度应用会调用指向您的Node API的http://yourdomain.com/api/
或http://api.yourdomain.com
。您可以将DNS配置为执行其中任一,而无需代码中对物理子目录的需求。