2016-11-16 5 views
0

Ich bin noch neu in diesem, aber ich versuche, meine eigenen Daten zu https://jsonplaceholder.typicode.com/users für Lernzwecke zu veröffentlichen. Am unteren Rand der Seite heißt es, npm install -g json-server zu verwenden, also habe ich diesen Befehl in meinem Projekt ausgeführt und ich habe versucht, die Daten in der Web - URL oben zu posten und habe es auch in einer statischen JSON - Datei gepostet Npm install -g JSON-Server-Befehl, aber ich bekomme, dass die JSON-Datei nicht gefunden wird, wenn die lokale Datei verwenden, und wenn ich versuche, auf die URL oben zu veröffentlichen, dann zeigt es einen Beitrag im Konsolenprotokoll, aber meine Tabelle mit der Benutzer werden nie aktualisiert. Kann mir jemand sagen, wie ich das funktioniere, damit ich meine POST-Daten sehen kann?Beitrag zu JSON-Server-Probleme

user.service.ts

 import {Injectable} from '@angular/core'; 
import 'rxjs/add/operator/map'; 
import {Http, Headers} from '@angular/http'; 
import {User} from './user'; 
@Injectable() 
export class UserService{ 
constructor(private _http:Http){ 


} 
getUsers(){ 
return this._http.get('http://localhost:4200/users') 
.map(res=>res.json()); 

} 
addUser(post){ 

return this._http.post('http://localhost:4200/users', post) 
.map(res=> res.json()); 



} 
} 

form.component.ts

import { Component, OnInit } from '@angular/core'; 
import {UserService} from '../users.service'; 
import {Http} from '@angular/http'; 
import {Router} from '@angular/router'; 
import {FormGroup, FormControl} from '@angular/forms'; 

@Component({ 
    selector: 'app-form', 
    templateUrl: './form.component.html', 
    styleUrls: ['./form.component.css'], 
    providers: [UserService] 

}) 
export class FormComponent implements OnInit{ 
    private user; 

    private _users; 
    constructor(
    private _userService:UserService 


){ 


    } 

userForm = new FormGroup({ 
name: new FormControl(), 
username: new FormControl(), 
email: new FormControl(), 
address: new FormGroup({ 
    street: new FormControl(), 
    suite: new FormControl(), 
    city: new FormControl(), 
    postalcode: new FormControl() 

}) 

}); 
onSubmit(){ 
this._userService.addUser(this.userForm.value) 
.subscribe(res => { 
this.user = res; 
console.log(res); 

}) 

} 

} 
+0

Haben Sie den Server gestartet? Außerdem scheinen Ihre URLs immer noch auf die Online-Version anstatt auf Ihre eigene lokale URL zu verweisen. –

+0

Ich habe versucht, es auf beide zu zeigen. Ich postete den obigen Code, um auf online zu zeigen, aber ich habe auch versucht, es auf app/users.json zu zeigen, was die lokale Datei ist, aber bekomme die Nachricht, dass sie nicht gefunden wird. Es ist der gleiche Pfad wie die GET-Anfrage, daher weiß ich, dass der Pfad korrekt ist. Ich aktualisierte Code oben, um lokale json Datei widerzuspiegeln – user6680

Antwort

0

Sie müssen sich jetzt nicht darauf an app/users.json, dass Sie den Server läuft. Per documentation können Sie einfach an http://localhost:3000/users POST.

+0

Ich aktualisierte den Code oben, um Ihren Vorschlag zu reflektieren, aber es zieht jetzt keine json Daten in GET und users.json ist im app Verzeichnis. Fehler: Unerwartetes Token user6680

+0

Möglicherweise möchten Sie überprüfen, ob mit Ihrem Server alles in Ordnung ist, es wird wahrscheinlich ein Fehler zurückgegeben. –

0

Ich glaube, Sie verpasst haben, dass für den öffentlichen Dienst (was vernünftig ist)

Note: the resource will not be really created on the server but it will be faked as if.

, da Sie es bereits lokal installiert haben, führen Sie einfach:

$ jsonplaceholder

nach URLs Hostnamen ersetzen in Winkel zu http://localhost:3000

+0

Ich habe den Befehl npm install -g json-server ausgeführt (Ist das, was Sie meinen, indem Sie jsonplace holder ausführen?), Wird jetzt keine json-Daten in GET gezogen und users.json befindet sich im App-Verzeichnis. Fehler: Unerwartetes Token user6680

+0

Entschuldigung, ich dachte, du rennst (npm install -g jsonplaceholder), wie es in der Dokumentation geschrieben wurde, nachdem du in der Lage sein solltest (jsonplaceholder) als Befehl wie (gulp oder irgendeinen anderen npm) zu verwenden libs installiert global), json-server ist eine lib, die von jsonplaceholder verwendet wird – 2oppin