When I print contents of request on Node server, I can't see the user data anywhere.
Here is my Node server:
var http = require('http');
http.createServer( function (request, response) {
console.log(request);
}).listen(8080);
console.log('Server running at http://127.0.0.1:8080/');
And here is Angular2 code:
import { Component, OnInit } from '@angular/core';
import { HttpClient } from "@angular/common/http";
import { Http, Response, Headers , RequestOptions } from "@angular/http";
import 'rxjs/add/operator/retry'; // to be able to retry when error occurs
import { Observable } from "rxjs/Rx";
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit{
title = 'Angular Test';
user = { id : 1, name : "Hello"};
constructor (private http: Http) {}
ngOnInit(): void {
let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers });
console.log(this.user);
this.http.post("http://localhost:8080/", this.user, options)
.subscribe(
(err) => {
if(err) console.log(err);
console.log("Success");
});
}
}
Can anyone help me out or explain how to handle http request in angular.
That is your server:
That is your angular client:
repo https://github.com/kuncevic/angular-httpclient-examples
I've written this inside our documentation page but since it is deprecated now I'll copy it here.
Your node part, app.js, should look like (assuming you are using expressjs along with node.js):
app.js:
With this node configs when you post something to
localhost:8080/test
, you will receivemyTestVar
as a response in your subscribe callback.