【问题标题】:angularjs Tour of Heroes example, how to implement web API Serverangularjs 英雄之旅示例,如何实现 web API Server
【发布时间】:2018-10-25 03:31:38
【问题描述】:

我是 Angular 的新手,我曾经使用 PHP 和一些 JavaScript 进行编码。所以看了《英雄之旅》示例代码,还是没有搞清楚HttpClient的概念。假设我要使用 MongoDB 和 Node.js 准备 Web API 服务器。如何准备代码以接受来自英雄之旅示例的 API 请求?有关如何执行此操作的任何示例代码?

同样在英雄之旅示例中, hero.service.ts 中执行大部分 http 进程的部分。

export class HeroService {

   private heroesUrl = 'api/heroes';  // URL to web api

这个“api/heroes”指的是哪里?我知道“in-memory-data.service.ts”会处理所有的http请求。但是当我看到里面的代码时,它看起来太简单了。您能否解释一下“in-memory-data.service.ts”如何提供 API 请求所需的数据。比如搜索英雄功能:

searchHeroes(term: string): Observable<Hero[]> {
  if (!term.trim()) {
    // if not search term, return empty hero array.
    return of([]);
  }
  return this.http.get<Hero[]>(`${this.heroesUrl}/?name=${term}`).pipe(
    tap(_ => this.log(`found heroes matching "${term}"`)),
    catchError(this.handleError<Hero[]>('searchHeroes', []))
  );
}

该函数使用“api/heroes”并提供查询词(英雄名称)并将返回一个英雄数组。我只是不明白为什么 http.get 可以查看 api/heroes 并获取 Hero 数组。 api/heroes 和“in-memory-data.service.ts”之间的联系在哪里?谢谢。

【问题讨论】:

    标签: angular angular-cli angular7 angular-tour-of-heroes


    【解决方案1】:

    如果你想开发 API 服务器来提供英雄内容,你可以先阅读下面的帖子,如果你只想用 nodejs 开发 API 服务器:

    Node JS without framework

    如果你想用 Node.js 开发 API 服务器并表达,请查看以下链接:

    Medium.com, build rest API with node.js and express.js

    阅读以上文章,您应该能够将数据库数据发送到客户端。要发送 Hero 对象,您可以将其包装在 Json 中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-19
      • 1970-01-01
      • 1970-01-01
      • 2016-12-28
      • 2017-11-21
      相关资源
      最近更新 更多