我的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);