如何使用Nest.js框架将图像返回给客户端?

Luc*_*uke 5 return image file nestjs

我正在构建一个应用程序,目前面临一个问题,我想返回存储在我的服务器中的图像。我想将图像返回给 React 客户端,然后它将在我的组件中呈现。但我不知道如何返回图像本身。据我了解,我需要以 JSON 形式返回图像?但不知道如何在 Nest.js 框架中做到这一点。

Poo*_*ian 7

首先,您应该有一个服务来提供静态文件。您可以使用 Nest.JS 来实现这一点。例如,如果您的图像放置在公共文件夹中,放置在项目的根目录中,您只需将以下行添加到文件中即可提供它main.ts

import { join } from 'path';
async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  app.use('/public', express.static(join(__dirname, '..', 'public'))); // <-
  await app.listen(3000);
}
Run Code Online (Sandbox Code Playgroud)

例如,您已将其cat.png放入公共文件夹中,并且您想在响应中发送此内容,您可以发送如下内容:

{
   image: `${baseUrl}/public/cat.png`
}
Run Code Online (Sandbox Code Playgroud)

例如,对于您的本地服务器,baseURL将为http://localhost:3000.
您可以查看这篇文章以获取更详细的解释。