6

for some reason I keep getting a "TypeError: GridFsStorage is not a constructor" error. I have no idea why its giving me this error since I'm just following the official documentation.

Storage and upload

conn.once('open', ()=> {
    gfs = Grid(conn.db, mongoose.mongo)
    gfs.collection('uploads')
})

const storage = new GridFsStorage({
    url: DBURI,
    file: (req, file)=> {
        return new Promise((resolve,reject)=> {
            crypto.randomBytes(16, (err, buf)=> {
                if(err) {
                    return reject(err)
                }
                const filename = buf.toString('hex') + path.extname(file.originalname);
                const fileInfor = {
                    filename: filename,
                    bucketName: 'uploads'
                }
                resolve(fileInfo)
            })
        })
    }
})
const upload = multer({storage})

Requirement

const GridFsStorage = require('multer-gridfs-storage')

Bug

C:\Users\gabri\Desktop\GridFS\server.js:21
const storage = new GridFsStorage({
                ^

TypeError: GridFsStorage is not a constructor
    at Object.<anonymous> (C:\Users\gabri\Desktop\GridFS\server.js:21:17)      
    at Module._compile (node:internal/modules/cjs/loader:1092:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1121:10)
    at Module.load (node:internal/modules/cjs/loader:972:32)
    at Function.Module._load (node:internal/modules/cjs/loader:813:14)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:76:12)
    at node:internal/main/run_main_module:17:47

3 Answers 3

23

The doc on NPM shows this:

const {GridFsStorage} = require('multer-gridfs-storage');

which is the same as:

const GridFsStorage = require('multer-gridfs-storage').GridFsStorage;

Whereas you are using this which is not the same at all:

const GridFsStorage = require('multer-gridfs-storage');
Sign up to request clarification or add additional context in comments.

1 Comment

3

Use this:

import {GridFsStorage} from 'multer-gridfs-storage'

Comments

1

This error occurs when an incompatible version of multer is used. Please downgrade to 1.4.4.

See comments for further information: Dependency problem using multer and multer-gridfs-storage

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.