0
在javascript代碼的mongodb中,我能夠使用gridfs插入一個文件(任何擴展名),它存儲爲fs.chunks & fs .files。現在我想讀取這個文件的流,但是在gridStore上的任何讀操作調用中它給出錯誤:「this.data.buffer.slice不是函數」。我使用了Node.JS的mongojs庫。MongoDB:使用Javascript(使用Node.JS)從MongoDB中讀取使用GridFS存儲的文件
// Write a file into MongoDB - Working fine.
// Our file ID
var fileId = new ObjectID();
// Open a new file
var gridStore;
// Create a file and open it
gridStore = new GridStore(db, fileId, "D:/Files/Sofa 2 N050210.3DS", "w+");
var data = fs.readFileSync('D:/Files/Sofa 2 N050210.3DS');
gridStore.open(function (err, gridStore) {
gridStore.write(data, function (err, gridStore) {
// Flush the file to GridFS
gridStore.close(function (err, fileData) {
// Write successfull
});
});
});
現在的問題是閱讀時,關閉Gridstore的後,我試圖打開文件進行讀取&它在讀取調用即在下面的代碼行中沒有-4給錯誤。
gridStore.close(function (result) {
var gridStore = new GridStore(db, "test_gs_seek_with_buffer", "r");
gridStore.open(function (err, gridStore) {
gridStore.read(5, function (err, data) {
if(err){
console.log("Error"); return;
}
console.log(data.toString());
});
});
});
請幫我找回解決方法或讀取存儲在GridFS中的文件的方法(不是來自命令提示符的javascript代碼)。
感謝您的寶貴答覆。我曾嘗試過。仍然再次嘗試&它的拋出錯誤:未捕獲TypeError:gfs.createReadStream不是一個函數。 –
我已經編輯了答案以及dB連接。我提供了貓鼬連接和mongoDb連接。試試你正在使用的那個。希望這一次有效。 –
感謝Mariya,Uncaught TypeError:gfs.createReadStream()不見了,但它給出了新的錯誤@ call:「rstream.on('data',function(chunk){}」 –