我有一个有角度的项目,我可以毫无问题地运行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>
,它已显示在窗口中,仅此而已。
我在控制台或浏览器上没有任何错误,所以我不知道如何纠正它。
谢谢
答案 0 :(得分:0)
问题是您的angular应用程序不是在4800下运行,而是在4200以下(默认情况下)运行,因此,尽管您没有遇到js错误,但在请求标签中却可能得到404。
您需要在有角度的应用程序中设置代理(有关开发,请参见https://juristr.com/blog/2016/11/configure-proxy-api-angular-cli/),或者,如果要从Express服务器交付文件,则需要编译应用程序,部署捆绑的版本并将快递配置为根据路径正确交付所需的文件。