1

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%>" />

私のビューページには画像がありません。そのページのviewouceコードに目を向けると、フルパスが表示されます。

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

1 に答える 1

1

アップロード用のルート/静的ファイル サービングを定義するコードを表示します。相対パスには URL としての意味がなく、通常、URL にはroutesどちらも含まれないため、ページ ソースには/uploads/1459772396796.jpg.

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

于 2016-04-05T05:26:21.217 に答える