Используйте 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, который является слоем абстракции над AJAX, который нам предоставляет Angular. Эта служба делает почтовый запрос со следующим кодом 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 Backend
Полагаю, у вас уже запущено базовое приложение Express, тогда это промежуточное ПО, которое вам нужно для прослушивания вызова AJAX и ответа с объектом, который вы хотите отправить.
app.post('register', (req, res, next) => {
chart = {property: value, property: value, property: value}
return res.json(chart);
});
Это промежуточное ПО (часть экспресс-фреймворка) прослушивает POST
запросов на компоненте регистра. Затем он отправляет JSON
ответ со значениями объекта диаграммы.
Если что-то не ясно, я настоятельно рекомендую вам попытаться понять принцип прочтения некоторых статей по этой теме.