2017-10-24 15 views
0

私のデータベースから画像を返そうとしています。データベースには、イメージへのファイルパスがあり、結果からres.sendFile(path)を使いたいと思います。DBから返されたオブジェクトから値を取得するMongoDB Express

例:

module.exports.getImage = function(req, res) { 
 
    Locations.findOne({_id: req.params.id}, {image: 1, _id: 0}, function(err, results) { 
 
    //results = {image: '/path/to/file.jpg'} 
 
    console.log(results); 
 
    //results.image = undefined 
 
    console.log(results.image); 
 
    filepath = path.join(__dirname, path.normalize(results.image)); 
 
    res.sendFile(filepath); 
 
    }); 
 
}

私は私がやっていると何をプリントアウトしている上に表示されます。

結果がオブジェクトを返しても、そのオブジェクトの変数に個別にアクセスすることはできません。

場所モデル:

var mongoose = require('mongoose'); 
 

 
var locationSchema = mongoose.Schema({ 
 
    name: String, 
 
    points: Number, 
 
    latitude: Number, 
 
    longitude: Number, 
 
    image: String 
 
}); 
 

 
module.exports = mongoose.model('Locations', locationSchema);

誰もがこの問題を解決する方法を知っていますか?

おかげで、

答えて

1

あなたは1枚の実画像のためのコンソールの実際の出力を共有し、また場所のスキーマを共有してもらえますか?

ありがとうございました

+0

はい、今質問を更新しています。 console.log()は既に問題になっています。 – SwimmingG

+0

うん、申し訳ありません、今はすべて仕事中です! – SwimmingG

+0

また、提案として、Expressからファイルを送信しないようにしてください。 NodeJSスレッドが画像を提供することからの劣化を説明した記事がありましたが、それはnginxなどのような実際のWebサーバーに残すことが最善です。たとえば、ファイルがパブリックディレクトリにある間にタグの中にイメージURLを配置し、Webサーバーで処理させます。 –

関連する問題