如何在Angular 2 web app中集成服务层和数据库,并为部署进行打包?

如何在Angular 2 web app中集成服务层和数据库,并为部署进行打包?,angular,Angular,我是新来的Angular2,用打字机学习。我知道Angular2中的所有内容都是组件,我们不会呈现整个HTML页面,而只是通过特定的组件。我这里有两个基本问题:- 1) 在我的示例Angular 2应用程序中,我有一个服务组件类,它使用依赖项注入将静态数据带到我的组件类中。我希望从数据库(MongoDB)中获取数据,而不是静态数据。在服务层和数据库之间,我很困惑。我可以知道在常规Angular 2应用程序中集成服务层和数据库层的最佳行业方法是什么吗?从控制器到服务,从dao到hibernate/

我是新来的Angular2,用打字机学习。我知道Angular2中的所有内容都是组件,我们不会呈现整个HTML页面,而只是通过特定的组件。我这里有两个基本问题:-

1) 在我的示例Angular 2应用程序中,我有一个服务组件类,它使用依赖项注入将静态数据带到我的组件类中。我希望从数据库(MongoDB)中获取数据,而不是静态数据。在服务层和数据库之间,我很困惑。我可以知道在常规Angular 2应用程序中集成服务层和数据库层的最佳行业方法是什么吗?从控制器到服务,从dao到hibernate/JDBC/ibatis,我们是否拥有像普通JavaJ2EEMVC体系结构那样的紧密耦合体系结构,或者我们是否使用松散耦合的web服务(RESTfulAPI)进行集成

2) 其次,我们如何包装这个Angular 2 web应用程序?我们是简单地将其压缩还是导出为WAR文件?目前,我正在本地系统上使用Node.js(命令提示符下的npm start等)运行它,并使用Visual Studio代码进行编码?如何创建WAR文件,Tomcat应用程序服务器是否支持Angular 2应用程序


谢谢

我将回答问题的第一部分,关于服务组件

Angular本质上是一个前端框架,而JAVA EE MVC或ASP.NET MVC和Razor应用程序通常同时处理前端和后端

在Angular应用程序中,其思想是数据服务是负责从单页应用程序获取数据并向其传输数据的层。框架和您的代码完成呈现网页的工作

在Angular教程中,第一个服务只是初始化静态数据。当然,目标是从任何地方获取数据,这是您的体系结构选择

例如,如果您要查询一个典型的REST API以获取数据,则可以使用http查询,如下所示:

import { Injectable } from '@angular/core';
import { Http } from '@angular/http';
import { Observable } from 'rxjs/Observable';

@Injectable()
export class MyDataService {
    protected myApiEndPoint = "http://myapi"

    constructor(protected http: Http) { }

    fetchMyObject(id: number): Observable<MyClass> {
        return <Observable<MyObject>> this.http.get(`${this.myApiEndPoint}/id`)
            .map(response => {
                return <MyObject>response.json();;
            })
            ;
    }
从'@angular/core'导入{Injectable};
从'@angular/Http'导入{Http};
从“rxjs/Observable”导入{Observable};
@可注射()
导出类MyDataService{
受保护的MyAPI端点=”http://myapi"
构造函数(受保护的http:http){}
fetchMyObject(id:number):可观察{
返回this.http.get(`${this.myapident}/id`)
.map(响应=>{
返回response.json();;
})
;
}
然后,您可以通过订阅Observable来使用它

当然,更多的变化是可能的,但这是第一个想到的

这假设您有一个正在运行的后端服务器,不要忘记Angular只是您的前端应用程序

在某种程度上,这是好的,因为它迫使您从前端断开后端应用程序逻辑和接口的耦合

还要注意的是,没有任何东西阻止您使用ASP.NET MVC framework来处理后端服务器并以JSON格式交付数据(而不是交付完整的HTML呈现页面)。
我不知道J2E MVC,但我认为应该也可以将数据序列化为JSON,而不是将其呈现为完整的服务页面。

为了清晰起见和未来的搜索者,我认为这应该有两个单独的问题。关于第二部分(部署),请参阅