【问题标题】:Load users from backend using angular / express使用 angular / express 从后端加载用户
【发布时间】:2018-04-24 05:01:38
【问题描述】:

我正在用 MEAN 堆栈做一个小项目,似乎对这里的一些东西有点迷茫。我可以很好地从 MongoDB 加载单个用户,但加载所有用户似乎有点迷失。

在我的路线文件中,我有

router.get('/admin, function(req, res, next) {
  User.find(function (err, user) {
    if(err) return next(err);
  }
});

我从数据库中得到结果如:

{"role":"user","_id":"5ade3f1c303744098c0acef1","firstname":"testFName","surname":"testSName","username":"testusername","password":"$2a$10$db1yx10Y3XOyyMt25PA5bOK3qso9fTxf9iOOWMapT7/Vt5n2gfCFC","email":"testemail@email.com","phonenumber":"0851234567","housename":"Villa Maria","addressline1":"Listry","addressline2":"Killarney","addressline3":"","county":"Kerry","__v":0}

我正在关注一个指南,但它似乎没有涵盖下一部分,我想知道是否有人知道我应该做什么。我确实知道我想在某处的表中使用 *ngFor。

我在构造函数中调用了我的 authService 和路由器

user: Object;

ngOnInit(){
  this.loadUsers();
}

public loadUsers() {
  this.authService.getUsers().subscribe((data) => {
    this.user = data;
}

在我使用的桌子上

<tr *ngFor="let user of users">
  <td>{{ user.username }} </td>

但我不断收到未定义的错误。我似乎看不出它是如何定义的。

【问题讨论】:

  • 'user' != 'users'。您还应该考虑在订阅解决之前会发生什么。

标签: node.js angular mongodb express angular5


【解决方案1】:

这是一个非常标准的错误。 Angular 给你这个错误是因为它试图在组件创建时渲染*ngFor立即,而调用服务需要时间并且稍后会带来结果。您应该在模板中添加类似*ngIf="users != null" 的内容并将*ngFor 放入其中。始终使用*ngFor 检查您要渲染的数组以避免此错误,或者确保在代码中您的数组属性永远不会获得nullundefined 值。

【讨论】:

  • thank you =] 将其添加到 并解决了问题
猜你喜欢
  • 2019-04-15
  • 2014-07-14
  • 2021-04-10
  • 2021-04-11
  • 1970-01-01
  • 1970-01-01
  • 2014-03-01
  • 1970-01-01
  • 2018-06-12
相关资源
最近更新 更多