如何轻松显示来自 Node JS 的图像
How to easily display Image from Node JS
我找不到如何在我的网站上显示图像的简单解决方案。
我可以在我的节点 js 后端读取它,但它会下载文件而不是放在我的 img 标签中。
你有一个简单的解决方案吗?
非常感谢!
HTML
let cell6 = document.createElement("td");
cell6.innerHTML = `<img src={http://localhost:4001/getImage/pexels-cottonbro-4065175.jpg}></img>`;
节点 JS
const fs = require("fs");
require("dotenv").config();
module.exports = (req, res) => {
fs.readFile(
`../backend/images/${req.params.id}`,
function (err, image) {
if (err) {
throw err;
}
console.log(image);
res.send(image);
}
);
};
你在这里面临的问题不是你如何读取数据,而是你如何将数据发送到前端。
首先,您需要正确设置 headers 以便前端(接收方)理解它是一个图像并且不下载它而是显示它。
在此处修改了您的代码:
const fs = require("fs");
require("dotenv").config();
module.exports = (req, res) => {
fs.readFile(
`../backend/images/${req.params.id}`,
function (err, image) {
if (err) {
throw err;
}
console.log(image);
res.setHeader('Content-Type', 'image/jpg');
res.setHeader('Content-Length', ''); // Image size here
res.setHeader('Access-Control-Allow-Origin', '*'); // If needs to be public
res.send(image);
}
);
};
我找不到如何在我的网站上显示图像的简单解决方案。 我可以在我的节点 js 后端读取它,但它会下载文件而不是放在我的 img 标签中。
你有一个简单的解决方案吗? 非常感谢!
HTML
let cell6 = document.createElement("td");
cell6.innerHTML = `<img src={http://localhost:4001/getImage/pexels-cottonbro-4065175.jpg}></img>`;
节点 JS
const fs = require("fs");
require("dotenv").config();
module.exports = (req, res) => {
fs.readFile(
`../backend/images/${req.params.id}`,
function (err, image) {
if (err) {
throw err;
}
console.log(image);
res.send(image);
}
);
};
你在这里面临的问题不是你如何读取数据,而是你如何将数据发送到前端。
首先,您需要正确设置 headers 以便前端(接收方)理解它是一个图像并且不下载它而是显示它。
在此处修改了您的代码:
const fs = require("fs");
require("dotenv").config();
module.exports = (req, res) => {
fs.readFile(
`../backend/images/${req.params.id}`,
function (err, image) {
if (err) {
throw err;
}
console.log(image);
res.setHeader('Content-Type', 'image/jpg');
res.setHeader('Content-Length', ''); // Image size here
res.setHeader('Access-Control-Allow-Origin', '*'); // If needs to be public
res.send(image);
}
);
};