Изображение не показывается из mongodb в шаблоне ejs

Я пытаюсь вставить изображение в mongodb, затем я хочу получить и показать изображение в шаблоне ejs.

Мой код:

index.js

var uploadDir=__dirname+'/uploads';
 var images=Date.now()+'.jpg';
var storage=multer.diskStorage({
    destination:function(request, file, callback){
        callback(null, uploadDir);
        },
        filename:function(request, file, callback){
            console.log(file);
            callback(null, images);
            }
    });
    var upload=multer({storage:storage}).single('photo');

/*============== blog Insert============*/
router.post('/add', upload, function(req, res, next){
    new blogs({
        title: req.body.title,
        description:req.body.description,
        categories:req.body.category,
        img:images,
        date:Date.now()
        }).save(function(err, doc){
             res.send('Inserted');
        });
    });

Образ успешно вставляется в коллекцию как имя файла, а также сохраняется на диске. Когда я пытаюсь получить изображение, написав:

<img src="./routes/uploads/<%= blogdata.img%>" />

на моей странице просмотра изображение отсутствует. Я перехожу к просмотру кода этой страницы, где отображается полный путь, т.е.

<img src="./routes/uploads/1459772396796.jpg">

1 ответ

Покажите код, где вы определяете маршруты / статический файл, служащий для выгрузки. Относительный путь не имеет значения в качестве URL, и обычно ваш URL не будет содержать routes либо так источник страницы должен сказать /uploads/1459772396796.jpg,

Согласно вашему комментарию, у вас есть два статических каталога, но я не уверен, что вы можете это сделать, но независимо от того, как я сказал, путь не включает routes часть.

Другие вопросы по тегам