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);
誰もがこの問題を解決する方法を知っていますか?
おかげで、
はい、今質問を更新しています。 console.log()は既に問題になっています。 – SwimmingG
うん、申し訳ありません、今はすべて仕事中です! – SwimmingG
また、提案として、Expressからファイルを送信しないようにしてください。 NodeJSスレッドが画像を提供することからの劣化を説明した記事がありましたが、それはnginxなどのような実際のWebサーバーに残すことが最善です。たとえば、ファイルがパブリックディレクトリにある間にタグの中にイメージURLを配置し、Webサーバーで処理させます。 –