创建节点 angular 应用

Creating a node angular app

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

  1. 作为单个应用程序。所以它是一个节点项目,其中包含 angular 文件夹(客户端)。所以文件结构是advance.

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

谁能告诉我什么是更好的方法。

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

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

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

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

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


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

此外,有时您还想在原始前端之外添加一个单独的前端。例如,如果你想添加一个移动应用程序,它会与同一个后端服务器通信。没有理由让相同的后端服务器为 Angular 应用程序提供服务。

发展。

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针对开发服务器编码,但数据将来自节点服务器:

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

部署。

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

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

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