簡體   English   中英

Angular - 如何從 HTTP POST 正確返回 JSON 響應

[英]Angular - how to properly return JSON response from HTTP POST

在我的 Angular 7 應用程序中,我需要通過 HTTP POST 提交搜索查詢:

成分:

onSubmit() {
    this.dataService.doSearch(this.model)
    .subscribe(
      data => {
        const ds = data.content as string [];
     this.myDs = data.content as string [];  // FILL THE ARRAY WITH DATA.
      console.log(ds);
   },
   (err: HttpErrorResponse) => {
     console.log (err.message);
   }
 );
  }

數據服務:

doSearch (issue: Issue): any {
  this.dialogData = issue;
  const requestId = this.dialogData['requestId'];
  const application = this.dialogData['application'];
  const component = this.dialogData['component'];
  const feature = this.dialogData['feature'];
  const isOn = this.dialogData['isOn'];
  const dataObject = {requestId: requestId, application: application, component: component,
    feature: feature,  isOn: isOn};
  this._http.post('/api/search', dataObject).subscribe({
  next: data => this.searchResponceData = data.json,
    error: error => console.error('There was an error!', error),
})
.map((res: Response) => res.json());
}

'/api/search' 端點在 node / express 部分處理,它也用於為 Angular 部分提供服務。

node / express 完成它的一部分並將正確的 JSON 返回給數據服務,但我無法弄清楚如何將返回的數據傳遞回組件,因為“訂閱”沒有“映射”方法。

在這種特定情況下,從底層 POST 返回數據的正確方法是什么?

使用 .pipe() 你將能夠使用 .map 畢竟。

在我看來,最好的方法是作為承諾返回 http 請求,然后在您的組件中訂閱。

當然,您將能夠像往常一樣迭代數據

.subscribe( res => someVar = res.map( ...someCode))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM