【发布时间】:2019-02-07 01:47:55
【问题描述】:
我在我的项目中创建了一个新集合,并遵循相同的语法来检索所有用户以从该集合中检索所有用户,但由于某种原因我最终得到一个空数组或列表。有人可以让我知道为什么会这样,因为我对 MongoDB 还很陌生。下面是我的代码。当我在查询之前放置一个 console.log 并调用它时,正在调用该服务。将数据保存到数据库也可以正常工作,只是 getAll 我在做这件事时遇到了麻烦。该集合只有一个字段,即帐号。
在我的服务中
async function getAll() {
return await accountdb.find({});
}
控制器
function getAll(req, res, next) {
accountdbService.getAll()
.then(account => res.json(account))
.catch(err => next(err));
}
在前端我有
getAll() {
return this.http.get<account[]>(`${environment.apiUrl}/account`);
}
最后在组件中
ngOnInit() {
this.loadAllAccounts();
}
private loadAllAccounts() {
this.AccountService.getAll().pipe(first()).subscribe(account => {
this.accounts = account;
console.log(this.accounts);
});
console.log(this.accounts);
}
调用 api 时的邮递员响应:
[
{
"_id": "5b89e647e1e6540ac28d68b1",
"logDataInput": "admin changed the status of user test2 to manager",
"__v": 0,
"id": "5b89e647e1e6540ac28d68b1"
},
{
"_id": "5b89e648e1e6540ac28d68b2",
"logDataInput": "admin changed the status of user test2 to User",
"__v": 0,
"id": "5b89e648e1e6540ac28d68b2"
},
{
"_id": "5b8a2a6b16206e0cae8c71ba",
"logDataInput": "admin deactivated user test2",
"__v": 0,
"id": "5b8a2a6b16206e0cae8c71ba"
}
]
【问题讨论】:
-
当你从 Postman 访问这个 API 时会发生什么?这会返回所需的数据吗?
-
嗨,首先感谢您的帮助,其次我无法让邮递员工作,它需要基本的身份验证,我无法工作
-
你不能像在 Angular 中那样只发送基本的身份验证头吗?
-
没错。你可以在 Postman 上做到这一点。
-
您似乎在服务中使用
async/await,但随后仍从控制器调用.then
标签: node.js angular mongodb typescript mongoose