单节点服务器上的两个Angular项目

时间:2018-08-15 09:40:02

标签: javascript node.js angular server angular5

我有两个有角项目,我想在同一个域中提供服务,例如,如果我做mywebsite.com/app1获得第一个项目,而当我做mywebsite.com/app2获得第二个项目。

4 个答案:

答案 0 :(得分:0)

如果您需要它们在同一节点服务器上运行,则只需为每个节点创建控制器路由即可将它们分开。如果您表示两个都需要它们在同一台物理服务器上运行,则可以调查子域,使app1.mywebsite.com指向一个正在运行的节点服务器,而app2.mywebsite.com则指向另一个正在运行的节点服务器。这样可以将它们划分为2个节点进程。

答案 1 :(得分:0)

为每个应用程序在dist内简单地创建2个文件夹,并使用express.static提供静态文件

var express = require('express');
var path = require('path');
var app = express();
app.use('/app1', express.static(path.normalize(__dirname + './../dist/app1')));         
app.use('/app2', express.static(path.normalize(__dirname + './../dist/app2')));

答案 2 :(得分:0)

在节点应用上创建两个文件夹

  • app1
  • app2 通过编辑angular.json文件,将两个项目的ng构建结果放入这些文件夹中,并为第二个应用程序“ app2”指定outDir和相同的内容:

    “ outDir”:“ / path / to / your / node / app / app2”

    “ outDir”:“ / path / to / your / node / app / app1”

然后在您的节点应用程序中告诉应用程序在特定路径上从哪个文件夹提供服务:

app.use('/app1', express.static('app1'));
app.use('/app2', express.static('app2'));
app.use('/', express.static('index.html'));

答案 3 :(得分:0)

我现在有了这段代码,它正在提供正确的应用程序,但是在Angular中,它找不到在localhost:8080 / main.js之类的根目录中查找的正确js文件,而是必须在localhost:8080 / app1 / main.js

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

app.use('/app1', express.static(path.normalize(__dirname + '/app/app1')));         
app.use('/app2', express.static(path.normalize(__dirname + '/app/app2')));
app.listen(8080, () => {
    console.log('Server is litening on port 8080');
});