【问题标题】:Serving Node Server and Angular 4 application in one command在一个命令中服务节点服务器和 Angular 4 应用程序
【发布时间】:2018-09-10 20:38:07
【问题描述】:

我正在开始一个使用 Angular 4 进行前端设计的新项目,该应用程序将需要一些我决定使用 node.js 的 rest api。我正在使用 Angular cli 来创建 Angular 应用程序,并且我知道如何创建 Angular 应用程序和节点服务器,但我想知道如何连接这两个东西,这样当我执行 ng serve 时,服务器和 Angular 应用程序都会被编译并运行.需要对项目结构或某些文件进行哪些基本更改?

【问题讨论】:

标签: node.js angular server angular-cli


【解决方案1】:

节点服务器和 Angular 应用程序是两个不同的东西。 为了运行节点服务器,您应该使用以下命令:

节点服务器名称.js

为了运行 Angular 应用程序,您应该使用以下命令:

npm start OR ng serve

在您的情况下,两者之间的连接是通过 http 请求建立的。 例如,您可以使用“express”在节点服务器中实现休息服务,然后在当前路由中向服务器发送 http 请求。

【讨论】:

  • 实现 rest api 不是问题。我想给一个命令,两个工作都应该完成
【解决方案2】:

我目前正在构建一个带有 Node/Express 后端的全栈 Angular 应用程序,并且想知道完全相同的事情。然而,尽管 scotch.io 教程告诉你,在同一个目录中创建 Express 服务器和 Angular 应用程序并不是最好的方法。

您要做的是在一个项目中设置您的 Express 服务器并在一个终端窗口中提供它,然后在一个单独的终端窗口中提供您的 Angular 应用程序,但让它指向您本地运行的 Express 服务器,而不是默认的Angular CLI 中包含的开发服务器(ng-serve 命令)。

这里有一个Stack Overflow answer 和一个Medium article,回答了我关于如何设置它的所有问题(幸运的是,这并不难)。

【讨论】:

    【解决方案3】:

    这就是我所做的 Shubham。我进入 Angular-Cli 并将“outDir”:更改为“../public”,换句话说,它看起来像"outDir": "../public"。 ../public 文件夹是我在 app.js 文件中设置的 Express 静态文件夹,带有 app.use(express.static(path.join(__dirname, 'public')));

    请记住,我已经全局安装了 nodemon,并且在我的 package.json 文件中,"start": "node app" 我只是从这个目录运行 nodemon 来启动我的服务器,Angular 和 Express 都在同一台服务器上运行。

    我看到有人说在 Node/Express 服务器上运行静态文件不好,但对于开发我不确定它是否重要。虽然我是 js 框架等方面的新手。这是我 github 帐户上的项目文件:https://github.com/chriskavanagh/angularauth

    编辑:无论何时更改代码,您都必须运行 ng-build(在您的 Angular 目录中)。

    【讨论】:

      【解决方案4】:

      首先,在Angular项目中做ng build,它会创建dist文件夹(静态文件夹)。 第二步,将以下代码粘贴到后端服务器入口点文件中。

      app.use(express.static(path.join(__dirname, 'dist/')));
      app.get('*', (req, res) =>{
          res.sendFile(path.join(__dirname, 'dist/index.html'));
      });
      

      完成上述操作后运行后端服务器:node filename

      注意:请给出index.html 文件在dist 文件夹中的正确路径。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-10-03
        • 2019-07-14
        • 1970-01-01
        • 1970-01-01
        • 2017-06-24
        • 2019-11-03
        • 2019-10-04
        • 2018-02-19
        相关资源
        最近更新 更多