Skip to content
This repository was archived by the owner on Aug 12, 2025. It is now read-only.
This repository was archived by the owner on Aug 12, 2025. It is now read-only.

mongoose and gridfs-locking-stream interaction #131

Open

Description

@ghasemikasra39

Sorry if the title is addressing gridfs-locking-stream and not gridfs-stream. I was using gridfs-locking-stream and had this problem:
https://stackoverflow.com/questions/49325749/mongoose-and-gridfs-locking-stream-interaction
I think gridfs-stream is not compatible with mongoose new version.
I've also created this issue on gridfs-locking-stream github page:
vsivsi/gridfs-locking-stream#5

Activity

  1. arn-the-long-beard commented on Apr 13, 2018

    @arn-the-long-beard

    Hello.

    I also get the same error

    Error: missing db argument new Grid(db, mongo)

    Then if I replace with
    ``javascript
    const conn = mongoose.connection

    var Grid = require('gridfs-stream');
    Grid.mongo = mongoose.mongo
    const gfs = Grid(conn)
    ``

    Then I get

    "TypeError: Cannot read property 'readPreference' of null

    I am using :

    • "mongoose": "^5.0.9",
    • MongoDB Version | 3.6.2
    • "gridfs-stream": "^1.1.1"

    Best regards,

    Arn

  2. deresegetachew commented on May 2, 2018

    @deresegetachew

    my experience is i was using gridfs-stream with multer-gridfs-storage
    for some reason mongoose:"^5.0" has issues with gridfs-stream when making connections and when i managed to make the connections multer-gridfs-stroage failed. so whatI resorted to was to use two mongoose versions in my application. At the end of the day i had different connections one to my GridFS and another to my mongoDatabase ; therefor i went on to use V5.0 for my mongodb and v4. for my GridFS. on how to install same packages of different version follow this https://gist.github.com/mnpenner/c46a5eff34cfa91f361a8b3baa249a10

  3. ldevalbray commented on Oct 13, 2018

    @ldevalbray

    Hey I have the same issue ...
    Any solution found ? I would like to avoid @deresegetachew 's one ;)

  4. stelapo commented on Dec 13, 2018

    @stelapo

    Hey I have the same issue ...
    Any solution found ?

  5. zenbert5 commented on Jan 24, 2019

    @zenbert5

    for reference i have encountered this. two difference instances of this happened with my code --

    1. mongo server isn't accessible for whatever reason

    2. modified my connection code -->
      const conn = mongoose.createConnection('your URI');
      var gfs;
      conn.once('open', () => {
      gfs = Grid(conn.db, mongoose.mongo);
      })

      from const conn = mongoose.connection(...)

      "express": "^4.16.4",
      "gridfs-stream": "^1.1.1",
      "mongoose": "^5.4.5",

    mongo DB v4.02

    Good luck

  6. kuzdogan commented on Oct 3, 2019

    @kuzdogan

    Refer to here: #56

    Using the db object instead of the connection resolved my issue.
    So instead of this:

    var gfs;
    var db = mongoose.connection;
    db.on('error', console.error.bind(console, 'connection error:'));
    db.once('open', function() {
      console.log("Connected!")
      var mongoDriver = mongoose.mongo;
      gfs = new Gridfs(db, mongoDriver);
    });
    

    To this

    var gfs;
    var connection = mongoose.connection;
    connection.on('error', console.error.bind(console, 'connection error:'));
    connection.once('open', function() {
      console.log("Connected!")
      var mongoDriver = mongoose.mongo;
      gfs = new Gridfs(connection.db, mongoDriver);
    });
    
  7. MZeeshan373 commented on Feb 23, 2021

    @MZeeshan373

    Refer to here: #56

    Using the db object instead of the connection resolved my issue.
    So instead of this:

    var gfs;
    var db = mongoose.connection;
    db.on('error', console.error.bind(console, 'connection error:'));
    db.once('open', function() {
      console.log("Connected!")
      var mongoDriver = mongoose.mongo;
      gfs = new Gridfs(db, mongoDriver);
    });
    

    To this

    var gfs;
    var connection = mongoose.connection;
    connection.on('error', console.error.bind(console, 'connection error:'));
    connection.once('open', function() {
      console.log("Connected!")
      var mongoDriver = mongoose.mongo;
      gfs = new Gridfs(connection.db, mongoDriver);
    });
    

    Thanks @kuzdogan This resolved my issue .

  8. Chris-QIU commented on Jun 19, 2021

    @Chris-QIU

    Refer to here: #56

    Using the db object instead of the connection resolved my issue.
    So instead of this:

    var gfs;
    var db = mongoose.connection;
    db.on('error', console.error.bind(console, 'connection error:'));
    db.once('open', function() {
      console.log("Connected!")
      var mongoDriver = mongoose.mongo;
      gfs = new Gridfs(db, mongoDriver);
    });
    

    To this

    var gfs;
    var connection = mongoose.connection;
    connection.on('error', console.error.bind(console, 'connection error:'));
    connection.once('open', function()  {
      console.log("Connected!")
      var mongoDriver = mongoose.mongo;
      gfs = new Gridfs(connection.db, mongoDriver);
    });
    

    @kuzdogan Thank you very much, this works.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions