2

画像を保存するために、nodejs で gridfs-stream モジュールを使用しています。

var db = require('config/db');
var Schema = require('mongoose').Schema;

var schema = new Schema({
    name: String,
    photo: Schema.Types.ObjectId // store file ObjectId
});

var model = db.model('User', schema);

model.findById('123...', function(err, user) {
     console.log(user.photo) // only returning file ObjectId
     console.log(user.photo.filename) // error
});

ファイル情報にアクセスできるように、ユーザーの写真を入力するにはどうすればよいですか?

データベースに fs.files と fs.chunks があることを知っています。しかし、自分のモデルを参照できるように、それらのスキーマを作成する必要がありますか?

4

1 に答える 1

1

user.photo は Schema.Types.ObjectId 型です。したがって、user.photo.filename は存在しません。

画像ファイルを gridfs にアップロードし、fs.files コレクションで画像に指定された fileId を取得する必要があります。次に、user.photo を fs.files 内のファイルの fileId に設定できます。

于 2014-12-11T16:30:56.007 に答える