首页 > 解决方案 > 如何将图像作为 REST API 响应发送?要遵循哪些准则?

问题描述

我正在使用Node.jsand制作应用程序Express。我可以使用 将文件保存到服务器multer,但是在发送响应时我有两个选项,

  1. 以 JSON 格式发送图片的 URI,让前端调用这个来显示图片。
  2. 使用某种形式的编码(如 Base64)作为 JSON 的一部分发送图像数据。

由于我是 Web 开发的新手,我对使用哪个选项感到困惑。有人说第一个选项需要两次 API 调用,所以会很慢。虽然我也听说第二种选择会占用更多的内存资源。

选择时我还应该考虑哪些其他事项,还有其他方式可以将图像发送到客户端吗?

标签: node.jsjsonrestexpress

解决方案


选项1

因为不需要转换,所以不太复杂。这 2 个 API 调用不会减慢您的速度。图像大小更重要!!..文件可以直接在文件系统上存储/访问并从那里提供。文件下载也在短时间内实现。此外,base64 编码使文件大致~33%(!!)更大,这对大文件的性能有巨大影响。

选项 2

Base 64 更安全,因为没有人可以如此处所述链接到您的网站。出于安全原因,您只需要使用 base64,或者如果您无法将图像数据作为二进制传输,则必须将其传输为字符串。

用例
  • 如果这是您的私人非生产性项目,请尝试两者并使用您喜欢的一个。最后,您正在学习一些东西。保持一致很重要!
  • 如果一个选项更适合您,只需按照您喜欢的方式实施即可。当您可能有更多经验或完成应用程序的核心部分时,您始终可以重构应用程序的给定部分。有时,在使用其中一种技术一段时间后,它会更清楚地使用哪种方法。
  • 对于学习,有时最好继续进行,并实施一些可行的方法,并在出现问题时开始重构。而不是过度设计小

推荐阅读