2017-12-19 14 views
0

イメージをアップロードするのにmulterを使用していますが、これを行うためにデータベースに保存するリンクを生成していますが、最初にファイルをサーバーに保存しています。 "リンク"は、ファイルの拡張子と共にファイルの名前ですが、後でデータベースに保存するか、関数を実行するために "リンク"のグローバル変数を設定する方法について私の頭をラップするのに問題がありますか?グローバル変数をMulter変数に設定する

var link; 
var storeImageData = multer.diskStorage({ 
    destination: function(req, file, callback) { 
     callback(null, './uploads'); 
    }, 
    filename: function(req, file, callback) { 
     var fileType = file.originalname; 
     link = shortid.generate() + "." + fileType; 
     callback(null, link); 
    } 
}); 

console.log(link); 

あなたは、私が「リンク」を設定しようとしていますが、これは明らかに動作しません見ることができるように。この仕事をするための方法はありますか?それとも私が探しているべきもの?

答えて

1

リンクreqを保存して、dbに保存するときにアクセスできます。 HERESに例:あなたのファイル名の機能で

:あなたのあなたがreq.linkでリンクを得ることができますmiddlwareを "DBへの保存" で次に

filename: function(req, file, callback) { 
     var fileType = file.originalname; 
     link = shortid.generate() + "." + fileType; 
     req.link = link; //add this line 
     callback(null, link); 
    } 

+0

入力いただきありがとうございます。私はミドルウェアでreq.linkにアクセスできなかったので、これを最後に使用することはできませんでした。しかし、最終的に私のコードがうまくいかなかった理由は、私のグローバル変数の配置が正しいブロックになかったためです。これは整流されたものと完全に機能しています。私はsocket.ioを使用しているので、私のグローバル変数はメインソケット接続の外側に置かなければなりませんでした。 – AlphaDaemon

関連する問題