mercredi 22 mai 2019

I am getting error on submitting the form

While connecting to mongodb ,I am getting warning "DeprecationWarning: current URL string parser is deprecated, and will be removed in a future version. To use the new parser, pass option { useNewUrlParser: true } to MongoClient.connect."

while submitting the form - I am getting "

The database connection must be open to store files at GridFSStorage._handleFile (C:\Users\charan puli\Desktop\upload\node_modules\multer-gridfs-storage\lib\gridfs.js:341:17) at C:\Users\charan puli\Desktop\upload\node_modules\multer\lib\make-middleware.js:144:17 at allowAll (C:\Users\charan puli\Desktop\upload\node_modules\multer\index.js:8:3) at wrappedFileFilter (C:\Users\charan puli\Desktop\upload\node_modules\multer\index.js:44:7) at Busboy. (C:\Users\charan puli\Desktop\upload\node_modules\multer\lib\make-middleware.js:114:7) at Busboy.emit (events.js:182:13) ....... .......

//////////////////app.js///////////////////////
...
...

//middle wares

app.use(bodyparser.json())

app.use(methodOverride('_method'))


app.set("view engine","ejs")

//connection

var mongoURI='mongodb+srv://charanpuli:Charan@1999@clusterpuli-xs9yc.mongodb.net/test?retryWrites=true'


mongoose.connect(mongoURI,{useNewUrlParser:true})
        .then(()=>{console.log('connected successfully');
        })
        .catch(err=>{console.log(err);
        })

var conn=mongoose.connection
var gfs
conn.once('open',() =>{
gfs = Grid(conn.db, mongoose.mongo);

  gfs.collection('questions')
})
//create storage object

var storage = new GridFsStorage({
    url: mongoURI,
    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 fileInfo = {
            filename: filename,
            bucketName: 'questions'
          };
          resolve(fileInfo);
        });
      });
    }
  });
  const upload = multer({ storage });
//@route /upload POST

app.post('/upload',upload.single('file'),(req,res)=>{
    res.json({'file':req.file})
})


 var port= 3000
app.get("/",(req,res)=>{
    res.render('index')
})

app.listen(port,()=>{
    console.log(`app is running at ${port}`);

})


////////////////////////////////////

expected - json file object ,connected Successfully
actual   - database connection must be open




Aucun commentaire:

Enregistrer un commentaire