Read file with node.js, mongoose, gridfs-stream
The example code on GitHub was a little bit misleading; I initially received the same error message you did. In my case, it was due to the fact that I was attempting to read the file before the write stream had finished. I resolved this by doing the read inside the event handler for "close"
:
var fs = require("fs"), mongo = require("mongodb"), Grid = require("gridfs-stream"), gridfs, writeStream, readStream, buffer = "";mongo.MongoClient.connect("mongodb://localhost/gridfs_test", function (err, db) { "use strict"; gridfs = Grid(db, mongo); // write file writeStream = gridfs.createWriteStream({ filename: "test.txt" }); fs.createReadStream("test.txt").pipe(writeStream); // after the write is finished writeStream.on("close", function () { // read file, buffering data as we go readStream = gridfs.createReadStream({ filename: "test.txt" }); readStream.on("data", function (chunk) { buffer += chunk; }); // dump contents to console when complete readStream.on("end", function () { console.log("contents of file:\n\n", buffer); }); });});
what is cover give an format to file than write or read
const express = require("express");const routes = express.Router();const mongoose = require('mongoose');mongoose.connect("mongodb://localhost:27017/gridfs");var conn = mongoose.connection;var path = require("path");var Grid = require("gridfs-stream");var fs = require("fs");Grid.mongo = mongoose.mongo;var datapath = path.join(__dirname, "../public/1.jpg");conn.once("open",() =>{ console.log('connections is opened '); console.log(conn.db + "wahab this is running"); var gfs = Grid(conn.db); var filestream = gfs.createWriteStream({ filename: "wahab.jpg" }); fs.createReadStream(datapath).pipe(filestream); filestream.on("close",(file) =>{ console.log(file.filename + " Write to DB"); }); }); });