首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Angular2:如何从"ng服务“宿主到Node.Js宿主

Angular2:如何从"ng服务“宿主到Node.Js宿主
EN

Stack Overflow用户
提问于 2017-01-26 17:21:47
回答 6查看 18.1K关注 0票数 5

我已经制作了我的第一个Angular2应用程序,同时使用ng serve托管。现在我必须添加一些后端(因为我需要一些小的服务器逻辑)。

我找到了,他基本上解释了如何在nodeJs上托管一个角2应用程序。但是ng serve做了很多事情,检查更改,捆绑不同的JS/CSS文件,向模板中注入角度,获得我的依赖项。

我不能只是“生成”角网站,然后,因为我必须更新角部分,从网络api获得数据,并使用它。

那么,我应该如何从ng serve切换到nodeJS

编辑:查看答案,我肯定还不够清楚。我的角JS不是一个只在客户端使用的应用程序,我已经完成了其中的一些部分(导航,某种形式,.)但是现在我需要用web服务和websocket托管服务器来继续工作。这不是将它部署到高效服务器上的问题。它即将进入允许我在服务器和客户端工作的环境。

EN

回答 6

Stack Overflow用户

发布于 2017-01-27 11:17:27

我终于明白你的问题了:

  • 您不需要使用绑定有角-cli (ng serve)的devserver,而是使用自己的Node.js支持的服务器。
  • 另外,您也不希望静态地构建应用程序(ng build)。您希望服务于实时构建(必须由服务器自动生成)。

以下是你如何做到的:

1)手表,传送带,捆绑.

Webpack就是这方面的最佳人选。

创建一个webpack配置文件与一个角应用程序的正确设置。这里有一个来自angular2-webpack的例子:webpack.dev.js

这个例子有点冗长。请记住,配置文件是您告诉webpack如何处理.ts文件的地方,它应该生成什么包等等。

2)使用Node.js服务器服务webpack生成的包

我看到两个选项,取决于您想要多少控制:

2a.使用webpack-dev-server (不是很多控制)

代码语言:javascript
复制
webpack-dev-server --config config/webpack.dev.js --watch src/

您可以看到webpack-dev服务器使用前面提到的配置文件。

同样,您可以看到要在angular2-webpack-初学者的package.json文件中运行的完整命令的示例。

2b.创建您自己的服务器(很多控件)

您可以使用webpack-dev-middleware创建一个Node.js/Express服务器,然后将步骤1中创建的配置文件提供给该服务器。

中间件是一个神奇的链接,它允许您通过Express服务器为webpack发出的文件提供服务。

使用webpack-dev-middlewaresrcServer.js的Node.js/Express服务器示例。

这能回答你的问题吗?

票数 11
EN

Stack Overflow用户

发布于 2017-12-19 01:42:36

我知道这是一个老问题,但我也有同样的顾虑,我发现ngserve选项很有用。在开发中,您可以在另一个端口上运行节点,然后调用/api被重定向到node.js。

https://github.com/angular/angular-cli/blob/master/docs/documentation/stories/proxy.md

package.json gets:"start": "ng serve --proxy-config proxy.conf.json",

然后创建一个像这样的proxy.conf.json文件{ "/api": { "target": "http://localhost:3000", "secure": false, "pathRewrite": { "^/api": "" } } }

票数 9
EN

Stack Overflow用户

发布于 2017-01-27 06:54:30

运行ng build --prod构建应用程序。

构建应用程序之后,您将在dist目录中找到最终的dist代码。

现在,在server.js文件中使用Node.js中的代码。

代码语言:javascript
复制
(function() {
    const express = require("express");
    const app = express();

    app.use(express.static(__dirname + "/dist"));

    app.listen(80);
    console.log("port" + 80);
})();
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41879292

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档