如何将 express 和 node 设置到现有的仅前端 Angular 2 项目中?

Posted

技术标签:

【中文标题】如何将 express 和 node 设置到现有的仅前端 Angular 2 项目中?【英文标题】:How to setup express and node into an existing front-end only Angular 2 project? 【发布时间】:2017-07-10 10:55:13 【问题描述】:

我有一个使用 Angular-CLI 和 NPM 的当前只有前端的 Angular 2 应用程序。我希望访问者能够通过联系表格向我发送电子邮件。

为此,我显然需要一个后端、快递和节点,我没有使用经验。

我需要将 express 和 node 集成到我的应用程序中,但我不知道如何正确执行此操作。

我在 SO 上找到了 THIS 类似的问题,但与我的情况无关。

其他教程只展示了如何在前端构建后不集成后端的 MEAN 堆栈应用程序。

我想知道的

如何设置我的 Angular 2 应用程序以在后端使用 express 和 node?​​li> 我需要哪些相关文件? 我可以使用 Angular-CLI 做到这一点吗?

【问题讨论】:

【参考方案1】:

设置使用 angular-cli 构建的项目以使用 nodejs/express 后端的最佳方法是简单地创建一个提供目录的 express 项目。在您的客户端项目中,如果它是使用 angular-cli 创建的,您应该可以只输入ng build,它会将所有内容编译到dist 目录中。

从那里,您可以创建一个快速服务器来为 dist 目录提供服务,如下所示:

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

您可以构建的最简单的服务器可能类似于

var express = require('express')
var path = require('path');

var app = express()

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

app.listen(3000, function () 
  console.log('Example app listening on port 3000!')
);

这将拦截所有路由并将它们重定向到创建的dist/ 文件夹中的index.html 文件。

有关如何设置和一些更高级设置的更多信息,请查看以下链接:

http://expressjs.com/en/starter/installing.html https://scotch.io/tutorials/mean-app-with-angular-2-and-the-angular-cli

只需将dist/ 文件夹视为将通过快速服务器提供的静态文件,并且由于路由和所有内容都是通过 Angular 处理的,因此您将被设置。

【讨论】:

以上是关于如何将 express 和 node 设置到现有的仅前端 Angular 2 项目中?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Angular 4 添加到现有的 node.js 应用程序

如何将 NewRelic 集成到与 Webpack 捆绑的 Node Typescript Express 服务器中?

将 socket.io 添加到现有的 Express 项目(前面有 React)

如何在 lambda 中使用 node-js 将我的文件添加到现有的 zip 文件夹?

如何将 SRW 包添加到现有的 Oracle 数据库?

如何将新行添加到现有的 QTablewidget