簡體   English   中英

如何在Node js后端服務器中創建對象並將其傳遞給Angular 2前端

[英]How to create an object in Node js backend server and pass it to Angular 2 front end

我想在節點服務器和示例上形成一個javascript對象:以下是我的server.js文件中存在的對象

chart = {property: value, property: value, property: value}

我想在注入組件的angular 2服務中獲取同一對象。

請提出我該如何達到同樣的目標?

使用Angular的Httpclient。 這是一個例子:

服務:

import { Injectable } from '@angular/core';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/catch';
import { HttpClient } from '@angular/common/http';

@Injectable()
export class RegisterService {

  constructor(private http: HttpClient) {

  }

  register(username: string, randomPass: string, email: string): Observable<any> {
    return this.http.post('http://localhost:3000/register',
      {username: username, randomPass: randomPass, email: email})
    .catch((error: any) => Observable.throw(error.json().error || 'Server error'));
  }
}

在我們的服務中,我們注入了HttpClient,它是Angular為我們提供的AJAX之上的抽象層。 該服務使用以下代碼this.http.post發出發布請求。 這個函數有兩個參數,對其中的URL POST請求被發送,且鍵值對在體內POST請求。 該函數返回一個Observable,可以在使用此函數的組件中進行訂閱。

注冊組件(僅注冊功能):

 public register(username: string, randomPass: string, email: string) {
      this.registerService.register(username, email)
        .subscribe(myResponse => {
          if (myResponse.success) {
            this.registered = true;
        });
    }
  }

當我們要發出AJAX請求時,應調用此函數。 它使用了依賴反轉原理 ,這樣我們就可以改變服務而不必徹底改變組件。

NodeJS Express后端

我想您已經有一個基本的Express應用程序正在運行,那么這是您需要偵聽AJAX調用並以您要發送的對象進行響應的中間件。

app.post('register', (req, res, next) => {
   chart = {property: value, property: value, property: value}

   return res.json(chart);
});

該中間件(express框架的一部分)在寄存器組件上偵聽POST請求。 然后,它發送帶有圖表對象值的JSON響應。

如果不清楚,我強烈建議您嘗試掌握閱讀一些有關該主題的文章的原理。

暫無
暫無

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

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