如何将 Mongoose 后端类连接到前端类(Ionic 与 Angular.io)
Posted
技术标签:
【中文标题】如何将 Mongoose 后端类连接到前端类(Ionic 与 Angular.io)【英文标题】:How to connect Mongoose backend class to frontend class (Ionic with Angular.io) 【发布时间】:2018-06-01 01:30:47 【问题描述】:我已经尝试了太多小时了,但我根本无法让它发挥作用。我正在制作一个登录页面,您基本上只需插入用户名,然后它从数据库中获取信息并更新前端的对象(唯一的区别是添加了 ObjectID)。这就是我想要的:
-
加载登录页面,提示您输入用户名。
您输入用户名。这里可能会发生多种情况:
-
它使用新用户名在数据库中创建一个新条目,并返回新用户:
ObjectID
和 Username
它从数据库中返回条目(来自find()
)
这并不疯狂,但我根本无法克服错误:
TypeError: 无法读取 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 类,我尝试过将所有内容都移到一个组件中,我尝试过各种各样的事情,但我根本无法让它工作。我希望我的后端 Mongoose 类与前端匹配。也许有一个图书馆可以为我做这件事吗?否则我就单独做。
我真的很想使用我拥有的 User 类,所以我没有使用对象。
【问题讨论】:
user
可能在您的storage.get('user')...
中设置为null
,如果您在then
回调中使用console.log(user)
,您会得到什么吗?
@Und3rTow Aaaah 这就是问题所在。现在工作正常 - 谢谢。现在另一个问题:我的用户类是否正确完成?我似乎无法将其设置为 storage.get()
中的返回类型。
@Und3rTow 好的,所以如果我将它用作接口,我基本上会怎么说storage.get().then((user: User) => if(user) this.user = user else this.user = new User(); );
- 基本上检查存储是否有用户。如果没有,请将其设置为空用户。否则我会得到同样的错误。
我猜你可以这样做:stackblitz.com/edit/angular-sk6yh1
@Und3rTow 我只是在构造函数中设置了this.username = ""
,然后我可以做new User()
,现在我没有收到任何错误:)
【参考方案1】:
我认为你不应该这样做。您应该使用 API 与您的后端对话;如果需要,您可以重用您的 POJO 接口;但不能从您的前端代码访问mongoosejs
存储。
【讨论】:
以上是关于如何将 Mongoose 后端类连接到前端类(Ionic 与 Angular.io)的主要内容,如果未能解决你的问题,请参考以下文章