【发布时间】:2021-11-21 13:24:47
【问题描述】:
有没有办法从 nodejs 后端获取多个图像到 Angular 前端。
目前我的代码不能正常工作。但它只将一张图像返回到控制台。 (我也不知道如何在网页中显示这个)这也是一个单独的请求来获取图像。所以它认为这是不好的做法
组件
this.vehicleService.getAdvertImage(this.image).subscribe( data => {
console.log(data);
const imageURL = URL.createObjectURL(data);
this.ADImage = imageURL;
// let reader = new FileReader();
// reader.onload = (data: any) => {
// this.ADImage = data
// }
})
Angular 服务文件
getAdvertImage(image: any): Observable<any>{
let params = new HttpParams();
params = params.append('image', image)
const reqURL = `${this.vehicleURL}/get-ad-image`;
const getImage = this.http.get<any>(reqURL, { params: params } )
return getImage;
}
NODE api 端点
router.get('/get-ad-image?:image', async (req, res) => {
const imageURL = req.query.image
try {
res.download(imageURL)
} catch (error) {
res.status(404).json({ error })
}
})
我需要在一个请求中获取几张图片。如果有办法做到这一点,请帮忙。
提前谢谢你
【问题讨论】:
-
不应该有任何理由一次返回多个图像,特别是如果
'/get-ad-image?:image'端点只处理单个图像,使您的组件可重用并多次调用它。如果您真的想要它,则发送一个数组,将图像提取到内存或文件系统中,然后返回一个将解析为图像的端点数组,然后遍历数组客户端并添加指向端点 -
@LawrenceCherone 感谢您的回答。如果我每次调用每个帖子的每个图像都会增加服务器上的负载。这就是为什么我不能重新使用该组件来一张一张地获取图像。不确定我是否在这里穿。
标签: javascript node.js angular frontend