gridfs-stream总是将文件存储为“contentType:binary / octet-stream”

我试图编写一个程序在nodejs中存储在MongoDB中的文件列表。 它工作正常,但有一个问题:它始终将contentType元数据存储为二进制/八位字节stream,我希望它存储实际的MIMEtypes。 我曾尝试在readStream(通过promises)之前获取mimetypes,但即使我对contentType进行了硬编码(例如“image / jpeg”),也始终将元数据保存为“binary / octet-stream”。

这是我的代码:

files.forEach(function(f) { var conn = mongoose.createConnection(db); conn.once('open', function () { var gfs = Grid(conn.db); var writeStream = gfs.createWriteStream({ filename: f.location, mode: 'w', contentType: 'image/jpeg' }); writeStream.on('finish', function() { console.log('Storing', f.location, 'OK'); return; }) .on('error', function(data) { console.log('Error', f.location, data) }); fs.createReadStream(path.join(__dirname, 'files', f.location), 'utf-8') .pipe(writeStream); }); }); 

任何想法? 谢谢您的反馈!

为了设置内容types,你需要这样做:

 var writeStream = gfs.createWriteStream({ filename: f.location, mode: 'w', content_type: 'image/jpeg' });