2016-04-05 4 views
0

Я пытаюсь вставить изображение в 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%>" /> 

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

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

ответ

0

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

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

+0

app.use (express.static (путь.join (__ dirname, 'routes/uploads'))); –

+0

Спасибо. Это должно идти по вашему вопросу, потому что это критическая часть ответа. –

+0

Да, но его не работает –