NodeJs服务器中的Angular

时间:2017-08-23 21:10:12

标签: node.js angular server

我是Angular的初学者。我有一个nodejs服务器,前端有Angular。现在我想知道两个服务器是否可以只有一台服务器? 因为在youtube的一些视频中,他们有一个服务器用于节点,一个服务器用于角度。

谢谢你,再见

2 个答案:

答案 0 :(得分:0)

是的,两者都可以有一台服务器。

您可以通过NodeJS服务器上最喜欢的HTTP服务器(例如express)将AngularJS文件作为静态文件提供,如下所示:

app.use(express.static(path.join(__dirname, 'client')))

其中client是包含前端内容的目录。

答案 1 :(得分:0)

在基本级别,您需要为构建的静态Angular文件设置静态路径,如果您使用的是Angular路由,则可能需要将所有请求定向到index.html Angular项目,以便Angular可以处理所有客户端路由。

例如,为位于由express-generator创建的默认public文件夹中的内置Angular CLI项目设置静态路径。该示例使用dist,因为这是执行ng build时Angular CLI项目的默认目标。

app.use(express.static(path.join(__dirname, 'public', 'dist')));

Catch-all路由将任何未被Express应用程序路由定义捕获的请求(例如返回JSON数据或类似的RESTful路由)引导到Angular项目的index.html

// some routes
var users = require('./routes/users');
app.use('/users', users);

// other routes
var todos = require('./routes/todos');
app.use('/todos', todos);

// catch-all route
// needs to go AFTER all other express server route definitions
app.use('*', (req, res) => res.sendFile(path.join(__dirname, 'public', 'dist', 'index.html')));

如果使用Angular CLI,在开发期间,您可以使用proxy单独运行项目。

希望这有帮助!