В mongodb из кода javascript я могу вставить файл (любого расширения) с помощью gridfs, он хранится как fs.chunks & fs .files. Теперь я хочу прочитать поток этого файла, но на любом из прочитанных сообщений opration на gridStore появляется ошибка: «this.data.buffer.slice не является функцией». Я использовал библиотеку mongojs от Node.JS.MongoDB: прочитайте файл, хранящийся с помощью GridFS от MongoDB в Javascript (используя Node.JS)
// 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 (от яваскрипта коды не из командной строки).
Спасибо за ваш ценный ответ. Я пробовал это раньше. Еще раз попробовал & Его ошибка бросания: Непринятый TypeError: gfs.createReadStream не является функцией. –
Я отредактировал ответ вместе с соединением дБ. Я обеспечил соединение mongoose и соединение mongoDb. Попробуйте использовать тот, который вы используете. Надеюсь, он работает на этот раз. –
Спасибо Mariya, Uncaught TypeError: gfs.createReadStream() ушел, но он дал новую ошибку @ call: "rstream.on ('data', function (chunk) {}" –