使用node.js运行角度项目

时间:2018-06-25 09:01:54

标签: javascript node.js angular

我有一个有角度的项目,我可以毫无问题地运行ng serve。但是我必须使用node.js才能访问数据库。

我已经创建了一个文件server.js:

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

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

var port = process.env.PORT || 4800;

app.listen(port, (req,res) => {
    console.log(`RUNNING on port ${port}`);
});

这个index.html文件:

<!doctype html>
<html lang="en">
<head>
      <meta charset="utf-8">
      <title>AngNode</title>
      <base href="/">

      <meta name="viewport" content="width=device-width, initial-scale=1">
      <link rel="icon" type="image/x-icon" href="favicon.ico">
</head>
<body>
      <app-root></app-root>

      <script type="text/javascript" src="runtime.js"></script><script type="text/javascript" src="polyfills.js"></script>
    <script type="text/javascript" src="styles.js"></script><script type="text/javascript" src="vendor.js"></script><script type="text/javascript" src="main.js"></script>
</body>
</html>

当我运行server.js文件时,我得到了RUNNING on port 4800,但是当我打开浏览器时,除了空白页面没有错误之外,什么都没有。我试图在Hello World之前添加一个<app-root></app-root>,它已显示在窗口中,仅此而已。

我在控制台或浏览器上没有任何错误,所以我不知道如何纠正它。

谢谢

1 个答案:

答案 0 :(得分:0)

问题是您的angular应用程序不是在4800下运行,而是在4200以下(默认情况下)运行,因此,尽管您没有遇到js错误,但在请求标签中却可能得到404。

您需要在有角度的应用程序中设置代理(有关开发,请参见https://juristr.com/blog/2016/11/configure-proxy-api-angular-cli/),或者,如果要从Express服务器交付文件,则需要编译应用程序,部署捆绑的版本并将快递配置为根据路径正确交付所需的文件。