在多个角度6应用程序之间切换

时间:2018-10-02 11:31:12

标签: angular angular6

我在Angle 6上有多个应用程序。每个应用程序都在不同的端口号(4200、4201等)上运行于开发时间。每个应用程序都有自己的后端(8080、8081等)。示例:带有角度端口4200和api端口8080的“ App0”和带有角度端口4201和api 8081的“ App1”。

App0可以在proxy.conf.js的帮助下查询端口8080和8081以及App1。

这里是问题:我可以使用它来提供正确的角度应用程序吗?这个想法是使用proxy.conf.js服务正确的前端。例如,我只有一个在App0中实现的“ / home”路由。表示如果我调用localhost:4201 / home,则应将窗口位置更改为localhost:4200 / home并显示其内容。从技术上讲,App0中的路由器模块将我路由出去(通过canActivate Guard)并启动了App1。但是直到现在,我从Chrome收到了websocket错误。有想法吗?

来自App0的路由代码:

{
    path: 'home',
    component: LandingPageComponent,
},

从App1路由代码:

const routes: Routes = [{
    path: 'home',
    component: NotReallyAComponent,
    data: {
        externalUrl: '/'
    },
  canActivate: [ExternalPageGuard]
}]

而App1中的ExternalPageGuard:

@Injectable()
export class ExternalPageGuard implements CanActivate {
    constructor(private router: Router) {}

    canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean | Observable<boolean> {
        const externalUrl = route.data['externalUrl'] + state.url;
        window.location.href = externalUrl;
        return new Observable(() => {
        });
    }
}
App1中的

proxy.conf.js:

const PROXY_CONFIG = [
    {
        context: [ "/api/**" ],
        target: "http://localhost:8081",
        secure: false,
        logLevel: "debug"
    },{
        context: [ "/app0/api/**" ],
        target: "http://localhost:8080",
        secure: false,
        logLevel: "debug"
    },{
        context: [
           "!/app1/**"
        ],
        target: "http://localhost:4200/",
        secure: false,
        logLevel: "debug"
    }
]

module.exports = PROXY_CONFIG;

Chrome出现错误: chrome error

0 个答案:

没有答案