저는 지금 너무 많은 시간 동안 노력해 왔습니다. 기본적으로 사용자 이름을 삽입하고 데이터베이스에서 정보를 가져 와서 프론트 엔드의 객체를 업데이트하는 로그인 페이지를 만들고 있습니다 (유일한 차이점은 ObjectID가 추가 된 것입니다). 다음은 내가 원하는 것입니다.몽구스 백엔드 클래스를 프론트 엔드 클래스에 연결하는 방법 (Angular.io를 사용하는 Ionic)
- 사용자 이름을 입력하라는 메시지가 표시되는 로그인 페이지를로드하십시오.
- 사용자 이름을 입력합니다. 여러 가지가 여기에 일어날 수있다 : 그것은 새로운 이름으로 데이터베이스에 새 항목을 만들고 함께 새로운 사용자를 반환
- :
ObjectID
및Username
- 그것은 (
find()
에서) 데이터베이스에서 항목을 반환
이 아무것도 미친 없지만, 단순히 오류 번번이 할 수
TypeError: Cannot read property 'username' of null
login.html
<ion-content>
<ion-input placeholder="Username" [(ngModel)]="user.username"></ion-input>
<button ion-button (click)="submit()">Submit</button>
</ion-content>
login.ts
export class LoginPage {
appStorage: Storage;
user = {
id: "test",
username: "test"
};
//user: User;
//user: Object = {};
constructor(private storage: Storage) {
this.appStorage = storage;
storage.get('user').then(user => {
this.user = user;
});
}
submit() {
this.appStorage.set("user", this.user);
}
ngOnInit() {
this.user = {
id: "test",
name: "test"
};
}
}
User.ts
export class User {
public id: string;
public username: string;
constructor(public inputId?: string, public inputUsername?: string) {
this.id = inputId;
this.username = inputUsername;
}
}
내가 가지고있는 사용자 클래스 주위에 변화 시도했습니다, 모든 것을 구성 요소로 옮겨 보았습니다. 모든 것을 시도했습니다. 나는 일을 할 수는 없습니다. 내 백엔드 몽구스 수업이 프론트 엔드와 일치하기를 바랍니다. 아마도 저를 위해 이것을 할 수있는 도서관이 있습니까? 그렇지 않으면 나는 그것들을 별개로 만들 것이다.
나는 User 클래스를 사용하고 싶습니다. 그래서 저는 객체를 사용하지 않습니다.
'storage.get ('user') ...에서'user'가'null'으로 설정되었을 수 있습니다.'then' 콜백에서'console.log (user)'하면 아무 것도 얻을 수 있습니까? – Und3rTow
@ Und3rTow Aaaah 그것이 문제가되는 곳입니다. 이제 잘 작동합니다. - 감사합니다. 이제 또 다른 문제 : 내 User 클래스가 올바르게 완료 되었습니까? 나는 그것을'storage.get()'에서 리턴 타입으로 설정할 수 없다. – MortenMoulder
@ Und3rTow 그래, 대신 인터페이스로 사용한다면, 기본적으로'storage.get(). then ((user : User) => {if (user) {user.user = user} else { this.user = new User();}});'- 기본적으로 저장소에 사용자가 있는지 확인하십시오. 그렇지 않으면 빈 사용자로 설정하십시오. 그렇지 않으면 같은 오류가 발생합니다. – MortenMoulder