【问题标题】:How do I serve an Angular application from existing nodejs server?如何从现有的 nodejs 服务器提供 Angular 应用程序?
【发布时间】:2020-07-02 17:47:13
【问题描述】:

我有一个 Angular 6 应用程序和一个现有的 nodejs api 应用程序。 到目前为止,我已经使用了

ng serve

运行和构建 Angular 应用程序。

我现在想从现有的节点 js 服务器提供我的 Angular 应用程序。

我该怎么做?我找不到任何文档。

【问题讨论】:

    标签: node.js angular


    【解决方案1】:

    您有两种方式提供 Angular SPA:

    • 通常是 dev:Webpack 运行的服务器,即ng serve。动态的意思是对文件的任何修改都会启动重建并更新输出。

    • 通常是 prod:您为 SPA 构建所有 html/js 文件(使用 ng build [...]),以便由 node 服务器静态提供。

      李>

    在您的情况下,如果您想使用现有的 node 服务器,这意味着您必须构建文件(使用 ng build),然后连接通常服务于 sn 的 node 静态文件-p 在你的node 应用程序中。

    但请注意:每次要更新显示时,都必须进行完整构建。因此,如果不是那么频繁,那没关系,但我猜对于开发环境来说就不行了。

    【讨论】:

      【解决方案2】:

      步骤:

      1. ng build,它将创建一个dist文件夹,您可以轻松地从节点网络服务器框架中提供服务,如expressHapiKoa
      2. 如果您使用的是 express.js,您可以使用 Angular app.use(express.static(path.join(__dirname, 'dist')))
      3. 现在使用节点服务器 URL 来提供像 http://localhost:nodeport 这样的 Angular

      如果您使用的是 Hapi:请查看https://hapi.dev/tutorials/servingfiles/?lang=en_US

      =================================基本快递服务器============ ====

      const express = require('express');
      const app = express();
      const path = require("path");
      const fs = require("fs");
      
      
      
      
      //const bodyParser = require('body-parser');
      app.use(express.static(path.join(__dirname, 'dist')));
      //app.use(bodyParser.json());
      
      
      //app.use('/api/v1/', require('./api/routes'));
      
       app.listen(8080,function(err){
         if(!err){
          console.log("server is running at port:8080);
         }
       })
      

      【讨论】:

      • 这在开发过程中没有帮助。此外,这是一个非常手动的过程。有没有任何自动化的方式来执行此操作?
      猜你喜欢
      • 2017-08-23
      • 2019-12-19
      • 1970-01-01
      • 2018-06-16
      • 2021-10-03
      • 2019-05-26
      • 1970-01-01
      • 2018-05-19
      • 2020-11-08
      相关资源
      最近更新 更多