目前正在开发一个带有Node.js+express后端的angular应用程序。 我已经成功地从mongoDB请求了正确的文档,并且能够通过终端查看这些文档。 我的问题在于获取相同的数据并将其显示到我的html模板中。 到目前为止,这是我所拥有的:
//api.js
router.get('/user/paPolicies/:id', (req, res) => {
const myquery = { _id: ObjectId(req.params.id) };
var data = req.body;
return db.collection('users').findOne(myquery, {paPolicies: 1})
.then(result => {
if(result) {
console.log(result.paPolicies)
} else {
console.log('No document matches the provided query.')
}
return result;
})
.catch(err => console.log(`Failed to find document: ${err}`))
})
//users.service.ts
getUserPaPolicies(_id: string, paPolicies: object) {
return this.http.get(`./api/user/paPolicies/${_id}`, paPolicies)
}
//user-view-portfolio.component.ts
export class UserViewPortfolioComponent implements OnInit {
id: any;
paPolicies: any = [];
constructor(private usersService: UsersService, private authService: AuthService) { }
ngOnInit(): void {
this.id = this.authService.getUserId();
console.log(this.id);
this.usersService.getUserPaPolicies(this.id, this.paPolicies).subscribe(result => {
this.paPolicies = result;
console.log(result)
});
}
}
上面所写的代码能够获得我所请求的文档。 但是,这些数据只能在终端内部查看。 需要注意的重要一点是,paPolicies是一个数组,如果需要,我可以编辑这篇文章,添加console.log(result.paPolicies)
的输出。
问题:
>
当我查看chrome dev tools控制台时,组件代码中的console.log甚至没有显示任何输出。
显然,如果我从组件中移除这段代码。ts:
this.usersservice.getUserPapolicies(this.id,this.papolicies)。subscribe(result=>{this.Papolicies=result;console.log(result)});
终端也会停止显示我请求的结果。
如何修改代码以使其能够在html模板中显示数据?
除了不知道您在棱角分明的前端中的HTML模板是什么样子之外,您不是应该发送响应而不是返回结果,以便将数据发送到前端吗?
router.get('/user/paPolicies/:id', (req, res) => {
const myquery = { _id: ObjectId(req.params.id) };
var data = req.body;
return db.collection('users').findOne(myquery, {paPolicies: 1})
.then(result => {
if(result) {
console.log(result.paPolicies)
} else {
console.log('No document matches the provided query.')
}
// return result;
res.send(result);
})
.catch(err => console.log(`Failed to find document: ${err}`))
})