2016-12-03 4 views
0

Когда я пытаюсь отправить данные с углового на мой узел nodejs, это не сработает.Не удается опубликовать данные из Angular to my nodejs api

[Backend] Это функция, которая ловит опубликованные данные. Я тестировал его с почтальоном, и это сработало. Console.log предназначен для тестирования. У меня также работает bodyParser.

register : function (req, res) { 
    console.log(req.body); 
    res.json(req.body); 
} 

[Frontend] Это функция, которую я вызываю для отправки данных. Я тестировал его с точками останова и консолью.log и вызывается функция. Я думаю, что я тестировал все возможные способы форматирования заголовка.

import { Injectable } from '@angular/core'; 
import { Http, Response, Headers, RequestOptions } from '@angular/http'; 

@Injectable() 
export class DataService { 
    constructor (private http: Http) {} 

    register(user:string): void{ 
     let headers = new Headers({ 'Content-Type': 'application/json' }); 
     let options = new RequestOptions({ headers: headers }); 

     this.http.post('http://127.0.0.1:5000/register', { user }, options); 

    } 
} 

Когда я поставил точку останова на this.http.post(...); я получаю это: link to image

ответ

1

Вы должны подписаться на сообщения.

this.http 
     .post('http://127.0.0.1:5000/register', { user }, options) 
     .subscribe((result){ 

      console.log('result',result); 

     }); 

Чтобы быть более ясным, Angualr2 службы HTTP использует rxjs Наблюдаемый, и это наблюдаемое в его природе и наблюдаемые ленивы, поэтому если вы не подписаться на них, они не будут ничего делать.

+0

Да, это сработало! Спасибо! Я думал, что проблема связана с заголовками. –

+0

Хорошо, принято? – Milad

Смежные вопросы