angular - Angular - 如何从 HTTP POST 正确返回 JSON 响应
问题描述
在我的 Angular 7 应用程序中,我需要通过 HTTP POST 提交搜索查询:
零件:
onSubmit() {
this.dataService.doSearch(this.model)
.subscribe(
data => {
const ds = data.content as string [];
this.myDs = data.content as string []; // FILL THE ARRAY WITH DATA.
console.log(ds);
},
(err: HttpErrorResponse) => {
console.log (err.message);
}
);
}
数据服务:
doSearch (issue: Issue): any {
this.dialogData = issue;
const requestId = this.dialogData['requestId'];
const application = this.dialogData['application'];
const component = this.dialogData['component'];
const feature = this.dialogData['feature'];
const isOn = this.dialogData['isOn'];
const dataObject = {requestId: requestId, application: application, component: component,
feature: feature, isOn: isOn};
this._http.post('/api/search', dataObject).subscribe({
next: data => this.searchResponceData = data.json,
error: error => console.error('There was an error!', error),
})
.map((res: Response) => res.json());
}
'/api/search' 端点在 node / express 部分中处理,该部分也用于为 Angular 部分提供服务。
node / express 尽其所能并将正确的 JSON 返回给数据服务,但我不太清楚如何将返回的数据传递回组件,因为“订阅”没有“地图”方法。
在这种特定情况下,从底层 POST 返回数据的正确方法是什么?
解决方案
使用 .pipe() 你将能够使用 .map 毕竟。
在我看来,最好的方法是将 http 请求作为承诺返回,然后在您的组件中订阅。
当然,您将能够像往常一样迭代数据
.subscribe( res => someVar = res.map( ...someCode))
推荐阅读
- reactjs - Typescript 声明在不同的依赖中必须有相同的变量问题
- ios - 我应该/必须为数字票务市场使用什么支付网关?
- python - Linux Path 环境变量——以正确的方式添加带空格的路径
- java - VBox 的拖放功能
- python-3.x - 将变量字典导出到 csv 的熊猫有空行
- angular - 如何在 SharePoint 2013 中部署 Angular 应用程序
- python - Tensorflow Dataset 是否会在 epoch 之间使用数据集转换在 shuffle 后进行 shuffle?
- spring - 如何使用 SpEL 避免空指针异常
- javascript - 使用 Firebase 云函数 onCreate 监听器设置自定义声明后如何通知前端需要刷新
- c# - 如何从 html 页面调用 c# 一键安装文件?