2016-04-05 3 views
0

イメージをmongodbに挿入しようとしていますが、ejsテンプレートでイメージをフェッチして表示します。イメージがejsテンプレートのmongodbから表示されない

マイコード:

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となります。

あなたのコメントには2つの静的なディレクトリがありますが、あなたがそれを行うことはできませんが、パスに関係なく、routesの部分は含まれていません。

+0

app.use(express.static(path.join(__ dirname、 'routes/uploads'))); –

+0

ありがとうございます。それは答えに欠かせない部分ですので、それはあなたの質問に入るはずです。 –

+0

ええ、しかし動作していない –