将请求结果从后端显示到html(MEAN)



当前正在开发一个带有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)的输出。

问题:

  1. 当我查看chrome dev工具控制台时,组件代码中的console.log甚至不显示任何输出。

  2. 显然,如果我从组件中删除这段代码。tts:

    this.usersService.getUserPaPolicies(this.id, this.paPolicies).subscribe(result => { this.paPolicies = result; console.log(result) });

终端也将停止显示我的请求结果。

我将如何修改代码以能够在我的html模板中显示数据?

除了不知道Angular前端中的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}`))

})

最新更新