[英]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.