创建节点角度应用程序[关闭]

Posted

技术标签:

【中文标题】创建节点角度应用程序[关闭]【英文标题】:Creating a node angular app [closed] 【发布时间】:2018-03-24 07:40:38 【问题描述】:

我正在创建一个节点角度应用程序。正如我所确定的,有两种方法。

    作为单个应用程序。所以它是一个节点项目,并且 Angular 文件夹(客户端)在其中。所以文件结构是高级的。

    作为两个独立的应用程序。所以角度应用程序和节点应用程序是分开的,角度应用程序使用节点应用程序的 url 获取数据。这里的文件结构更容易理解和编码。

谁能解释我什么是更好的方法。

【问题讨论】:

您指的是文件夹结构还是系统架构? 不,我认为他是在谈论为他的应用提供服务 是的。我说的是服务我的应用程序。因为将它们中的两个分开放置在以后的其他开发人员和我身上更容易理解和阅读。但正如我提到的许多教程以其他方式做的那样。 我建议您使用第二个,因为以后更易于管理,如果需要,您可以集成两个构建 【参考方案1】:

发展。

Node 和 Angular 项目应该分开。每个项目都有自己的 package.json。使用已配置的 REST 端点启动 Node 应用程序(例如,在端口 8000 上) - 它将返回 JSON。

使用 Angular CLI ng serve 启动客户端,这将在端口 4200 上启动开发服务器。要从运行在 4200 上的 Angular 应用程序访问端口 8000 上的数据服务器,您需要配置一个小型 proxy-conf 文件所以浏览器不会给你CORS错误。例如,如果您的 Node 应用程序有一个端点 /api/products,请在您的 Angular 项目中创建一个文件 proxy-conf.json:


  "/api": 
    "target": "http://localhost:8000",
    "secure": false
  

现在您可以继续针对开发服务器进行 Angular 编码,但数据将来自 Node 服务器:

ng serve --proxy-config proxy-conf.json

部署。

使用 Express API,在您的节点服务器上定义将包含静态内容(您的 Angular 包和资源)的文件夹。

使用 ng build 构建包并将 dist 目录的内容复制到节点应用程序上的静态目录中。

【讨论】:

【参考方案2】:

我假设您正在谈论一个典型的 MEAN 堆栈 Web 应用程序,前端是 Angular,后端是带有 Express 和数据库 (Mongodb) 的 Node,或任何类似的库。

没有更好的方法。这实际上取决于您的应用程序。您可以通过多种方式为您的应用提供服务。您应该构建您的 Angular 应用程序并获取您的静态文件并从您喜欢的任何地方提供它们。

    您可以通过用作后端的同一台服务器为它们提供服务。只需放置文件节点的静态文件夹并告诉节点为它们提供服务。这是一种不错且快速的方法,而且效果很好。

    您可以为前端创建一个单独的服务器,并使用更强大的文件服务器,例如 nginx 或 apache,甚至可能是另一个节点服务器。如果您有两台服务器并想从后端服务器中分担前端的带宽负载,这很好。

    如果您的前端是 Angular2,您可以使用其内置的 lite 服务器(通过发出 ng serve)。这主要用于开发,对您的服务器来说是一个很大的开销,但它可以工作。您可以在单独的服务器上执行此操作。


您在 cmets 中提到您关心其他开发人员了解您的项目。可能我会和jitender一起去。如果您想将项目从服务器移动到另一个服务器,那么您没有理由合并代码并将它们分开可能是一件好事。例如,如果您从同一个后端服务器为前端提供服务,但后来决定添加一个专用的前端服务器。

有时您还想在原件旁边添加一个单独的前端。例如,如果您想添加一个移动应用程序,它将与同一个后端服务器进行通信。没有理由让同一个后端服务器为 Angular 应用程序服务。

【讨论】:

我认为你没有得到他问的关于结构的问题 他在上面的评论中说他正在谈论为他的应用程序提供服务。 “是的。我正在谈论为我的应用程序提供服务。” @jitender【参考方案3】:

两者都有自己的优势,但如果应用程序很重,请分别创建客户端应用程序(angular)和服务器应用程序(express 或 koa js)。在维护和扩展方面,客户端和服务器应用程序的分离总是更好

【讨论】:

以上是关于创建节点角度应用程序[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

使用节点和角度应用程序在页面刷新时获取 404 页面

如何使用 JWT 从前端(角度 4)将密钥传递到后端(节点 js)

关于在 Firebase Realtime 后端创建具有 Posts 节点的社交应用程序的提示/建议 [关闭]

在节点js服务器中部署我的角度应用程序的问题

从角度组件关闭电子应用程序

可以在角度调用父组件功能时单击子组件上的任何按钮? [关闭]