如何在 nodejs 中提供图像原始二进制数据



我的html中有一个img标签,它从nodejs服务器请求图像。在我的服务器js文件中,我有以下代码来发送图像响应,但我观察到数据没有在客户端呈现。有什么建议吗?

const getFile = (filePath) => {
    return new Promise((resolve, reject) => {
        fs.readFile(filePath, (error, data) => {
            if (!error) {
                resolve(data);
            } // enter code here
            else reject(error);
        });
    });
};
getFile(test.jpg).then((data) => {
    response.statusCode = "200";
    response.setHeader("Content-Type", "image/jpg");
    response.end(data, "base64"); // Also tried response.end(data, "binary")
})
.catch(error => console.log(error));

这是一个快速应用程序吗?如果是这样,最好的办法是使用静态中间件。将所有静态(二进制)文件放在一个文件夹中,使用静态中间件公开它,并以这种方式加载它。

而不是fs.readFile,使用fs.createReadStream和管道块用于图像。

let frstream = fs.createReadStream(url);
        response.statusCode = "200";
        response.setHeader("Content-Type", "image/jpeg");
        frstream.pipe(response);