TransWikia.com

Node.js: Передать изображение с сервера на браузер

Stack Overflow на русском Asked on November 7, 2021

Нужно передать изображение с сервера на браузер. Для этого я передаю браузер массив, в котором содержится локальный путь до изображения. Пользователь может изменять путь до папки с изображениями

Server.js: считываю и записываю в массив путь до изображений находящийся в папке images

fs.readdir("../../Desktop/images",{ withFileTypes: true },
(err, files) => {
    if (err)
        console.log(err);
    else {
        files.forEach(file => {
            if (path.extname(file.name) === ".jpg") {
                var imgpath = '../../Desktop/images/' + file.name
                images.push(imgpath)
            }
        })
    }
});

Передаем браузеру массив, который содержит пути

app.get('/', function(req, res) {
   res.render('index', {images: images, index_img: index_img, category: setting["category"]})

});

Но при попытке вывести изображение на канвас, ничего не выводится.

var img_element = new Image()
img_element.src = current_image // в переменной current_image лежит путь до изображения

В итоге в логах выходится ошибка: 70-b3-d05_1_75_0.jpg :1 GET http://locallhost:8080/Desktop/images/70-b3-d05_1_75_0.jpg 404 (Not Found)
Подскажите в чем проблема и как ее решить? Или, возможно, есть какой-нибудь более рациональный способ отправить браузеру массив с фотографиями

app.use('/Desktop', function (req, res) {
    res.sendFile(path.join(__dirname,images[index_img]))
})

One Answer

Проблема решилась добавлением следующей строки : index_img = index_img + 1

app.use('/Desktop', function (req, res) {
    res.sendFile(path.join(__dirname,images[index_img]))
    index_img = index_img + 1 // вот этой строки
})

Answered by Утка Обычная on November 7, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP