私はCartService.tsでangular2ang2からnode.jsへのhttp.get()リクエストを使用して、未定義のデータがありますか?
からNode.jsのためにhttp.get()要求しようとしています。..
@Injectable()
export class CartService {
private CartUrl: string = '../cart'; // URL to Web API
private headers: Headers = new Headers({'Content-Type': 'application/json'});
constructor(private http: Http) {}
public getCart(): Promise<Cart> {
return this.http.get(this.CartUrl)
.toPromise()
.then(response => response.json().data as Cart)
.catch(this.handleError);
}
public handleError(error: any): Promise<any> {
console.error('An error occurred', error);
return Promise.reject(error.message || error);
}
}
とapp.component.ts ...
export class AppComponent implements OnInit {
constructor (private cartService: CartService){}
cart : Lecture[] = [];
DBinfo : Cart;
ngOnInit(): void {
this.getCart();
}
private getCart() : void{
this.cartService.getCart()
.then(DBinfo => this.DBinfo = DBinfo ,
()=>console.log("The data is... "+this.DBinfo));
}
とindex.js nodejsから
..router.get('/cart', function (req, res,next) {
var cart = {
"email": "[email protected]",
"item" : "bread"
};
res.json(cart);
});
ngOnInitがthis.getCart()、
console.log( "this is ..." + this.DBinfo))で実行されたとき。
"データは...未定義です"
node.js ..から正確にデータを取得するにはどうすればよいですか?
then()
からこの:)
私はそれを修正し '() => console.log( "データは... + this.DBinfo);' 'err => console.log(err)'にしてから、後でconsole.log(DBinfo)にしようとしましたが、同じ結果が表示されます。 .. – highalps
ええ、しかし、何かエラーが印刷されますか? – mxii
最初のコールバックに 'console.log'を追加します:' data => {console.log(data); this.data = data; } ' – mxii