繁体   English   中英

如何从同一文件夹设置Angular2 CLI项目和Node.js应用

[英]How to set up Angular2 CLI Project and Node.js app from the same folder

我使用angular2 cli创建了一个项目。 我还创建了一个单独的节点js应用程序作为后端。 我想将前端应用程序移动到节点应用程序中,以便可以使用节点server.js运行两个应用程序。 我的server.js看起来像这样:

app.use(express.static(__dirname + '/app'));
...
app.get('*', function (req, res) {
    res.sendfile('./app/src/index.html');
});
app.listen(8000);

我从angular2 cli获得的index.html看起来像这样:

<!doctype html>
<html>

<head>
  <meta charset="utf-8">
  <title>My App</title>
  <base href="/">

  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="icon" type="image/x-icon" href="favicon.ico">
</head>

<body>
  <app-root>Loading...</app-root>
</body>

当我现在运行节点server.js并浏览到http:// localhost:8000 /时,我可以看到“正在加载...”消息,但是此后什么也没有出现,并且控制台中也没有错误。

您真正应该做的是在某个文件夹中创建带有角度cli的prod构建( ng build --prod -o /somefolder )(o用于输出),然后让节点将带有app.use(express.static...) 比您可以添加一条路由来仅返回index.html页面,以便您的url不会包含整个文件夹路径(例如:localhost / somefolder / index.html)(此路径很丑陋)。

这是最好的方法,因为有角度的应用程序仍然是单独的,并且不会与nodejs逻辑混合在一起。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM