如何在 GraphQL 中发送获取请求,以从项目的文件夹中获取图像?

How to send a get request in GraphQL, to get an image from the project's folder?

我是 GraphQL 的新手,并不完全了解它的可能性。但是我需要将我的 REST 请求转换为 GraphQL 请求,这是我的问题,我如何在 GraphQL 中实现以下代码?

router.get('/image/:id', (req, res) => {
    const path = 'images/' + req.params.id + '.jpg';
    return res.sendFile(path, { root: 'src/' })
})

对于我的其他请求,我正在使用 mongodb 数据库,我可以将我的 REST 请求转换为 Graphql 请求,但是对于这段代码,我不知道如何实现它。

提前致谢

这不是您可以使用 GraphQL 重新创建的东西。它是数据查询和检索的标准,它期望来自 GraphQL 端点的响应是有效的 JSON.

最好的办法是保留现有端点,并在必要时使用它来获取图像。

如果您执意要通过 GraphQL 返回数据,您也可以尝试对其进行 base64 编码,这样您就可以将二进制数据转换为字符串,您可以在客户端将其转换回缓冲区。

解析器看起来像这样:

import { promises as fs } from "fs";

const getImage = async (_, { id }) => {
    const fileBuffer = await fs.readFile("images/" + id + ".jpg");
    return fileBuffer.toString("base64");
}