저는 Angular 세계에서 상당히 새롭고 http post 메서드를 사용할 때 몇 가지 문제가 있습니다. 이걸 도와주세요, 고마워요!AngularJS에서 post 메서드를 사용하는 방법
내 코드를 좀 더 쉽게 보이게하기 위해 관련없는 것들을 잘라 냈습니다.
배경 : 익스프레스를 사용하여 localhost : 8080을 만들고 데이터가 상기 호스트에 게시되면 콘솔에 '캐치 데이터'가 기록됩니다. 나는이 호스트를 테스트하기 위해 '우편 배달부'를 사용하고 작동한다. Angular 코드에서 post 메서드를 사용하려고하면 콘솔에 응답이 없습니다.
import {Component} from '@angular/core';
import {Headers, Http, Response, Request, RequestOptions} from '@angular/http';
import {User} from './user';
import {UserService} from './user.service';
import {Observable} from 'rxjs/Rx';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/catch';
@Component({
selector: 'my-app',
template:
`
....
<button type= "button" class="btn btn-primary btn-lg"
(click)= "addUser()">Login</button>
....
`
})
export class AppComponent{
user: User= {
UserId: "",
Password:""
};
constructor(private userservice: UserService, private http: Http){};
hostUrl:string = "http://localhost:8080/SignIn";
addUser(){
let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({headers: headers});
let body:string = JSON.stringify({"UserId":"Jay","Password":"asfjghj123f"});
this.http.post(this.hostUrl, body, options)
.map((res:Response) => res.json())
.catch((error:any) => Observable.throw(error.json().error || 'Server error'));
console.log('posting data...');
}
}
여기, 정말 '관찰 가능한'의 사용에 혼란 스러워요 또한 localhost8080
'use strict';
var express= require('express');
var app = express();
var signService = require('./signService.js');
var sessionRepo = require('./sessionRepo.js');
var bodyParser= require('body-parser');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: false
}));
app.post('/SignIn', function(req, res){
console.log('catching data');
res.send('hello');
});
내 nodejs 코드입니다. 공식 튜토리얼에서 샘플 코드를 볼 수 있으며, post 메소드에서 Observable을 사용한다. 왜 우리는 사후 방법으로 물건을 반환합니까, 우리는 물건을 직접 거기에 게시하지 않습니까? 우리가 얻은 유일한 물건은 그러한 요청의 상태입니까?
소스 코드 : https://angular.io/docs/ts/latest/guide/server-communication.html에서
addHero (name: string): Observable<Hero> {
let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers });
return this.http.post(this.heroesUrl, { name }, options)
.map(this.extractData)
.catch(this.handleError);
}
;
죄송합니다. nodejs 부분에서, .listen ('8080', function() {console.log ('listen to port 8080');}) –
을 추가하는 것을 잊었습니다. 덧글 –
도 여기에 추가 할 필요가 없습니다. map()은 무엇을합니까? 자바 스크립트에서 맵은 배열에 대한 일을하고 있지만, 여기서 무엇을하는지 전혀 모르겠습니다. –