Я реализовал загрузку изображений в NodeJS express, используя multer, и при попытке получить изображения в браузере я получил эту ошибку:
URL: http://localhost:5500/images/posts/5e2843e4efa65f188fc5552f.png
Cannot GET /images/posts/5e2843e4efa65f188fc5552f.png
Я увидел в консоли 404
поэтому я не могу понять, почему я не вижу свое изображение.
Я сделал загрузку следующим образом:
postRouter.post(
"/:id/uploadImg",
multerConfig.single("image"),
async (req, res) => {
try {
const fileName =
req.params.id + path.extname(req.file.originalname);
const newImageLocation = path.join(
__dirname,
"../../images/posts",
fileName
);
await fs.writeFile(newImageLocation, req.file.buffer);
req.body.image =
req.protocol +
"://" +
req.get("host") +
"/images/posts/" +
fileName;
const newPostImg = await Posts.findOneAndUpdate(
{ _id: req.params.id },
{
$set: { image: req.body.image }
}
);
newPostImg.save();
res.send("Image URL updated");
} catch (ex) {
res.status(500).send({ Message: "Internal server error", err: ex });
}
}
);
И на моем сервере. js
server.use(express.static("./images"));
Я могу загрузить, но не могу увидеть его и не могу понять, в чем проблема.