从multer gridfs存储引发和处理错误



我从multer gridfs存储中抛出了一个错误,但不确定是否能以更好的方式处理它。

我的代码:-

const storage = new gridfsStorage({
url : 'mongodb://localhost:27017/uploadeditems' ,
options : { useNewUrlParser : true , useUnifiedTopology : true  } ,
file : (req , file) => {
if(file.mimetype === 'image/jpeg') {
return {
filename : file.originalname,
bucketName : 'Images' ,
metadata : {
ownername : "Anshu Anand"
}
}
}
else if(file.mimetype === 'application/pdf') {
return {
filename : file.originalname , 
bucketName : 'projectPDFs'
}
}
else {
throw new Error("File type is different")
}
}
})
upload = multer({
storage ,

})

我的api来处理它:-

app.post('/upload' , upload.single('project')  , async (req, res) => {
console.log(req.file)

res.render('upload' , {
msg : "File has been uploaded successfully"
})
} ,
(err , req , res , next ) => {
console.log(err) 
return res.send(err) //gives just this :- storageError : [] 

)

控制台.log(错误(输出:-

Error: File type is different
at GridFSStorage.file [as _file] (F:Node Projectsupload-downloadindex.js:41:19)
at GridFSStorage._generate (F:Node Projectsupload-downloadnode_modulesmulter-gridfs-storagelibgridfs.js:472:18)
at GridFSStorage.fromStream (F:Node Projectsupload-downloadnode_modulesmulter-gridfs-storagelibgridfs.js:368:35)
at GridFSStorage.fromFile (F:Node Projectsupload-downloadnode_modulesmulter-gridfs-storagelibgridfs.js:353:15)
at GridFSStorage._handleFile (F:Node Projectsupload-downloadnode_modulesmulter-gridfs-storagelibgridfs.js:314:9)
at F:Node Projectsupload-downloadnode_modulesmulterlibmake-middleware.js:144:17
at allowAll (F:Node Projectsupload-downloadnode_modulesmulterindex.js:8:3)
at wrappedFileFilter (F:Node Projectsupload-downloadnode_modulesmulterindex.js:44:7)
at Busboy.<anonymous> (F:Node Projectsupload-downloadnode_modulesmulterlibmake-middleware.js:114:7)
at Busboy.emit (node:events:376:20)
at Busboy.emit (F:Node Projectsupload-downloadnode_modulesbusboylibmain.js:38:33)
at PartStream.<anonymous> (F:Node Projectsupload-downloadnode_modulesbusboylibtypesmultipart.js:213:13)
at PartStream.emit (node:events:376:20)
at HeaderParser.<anonymous> (F:Node Projectsupload-downloadnode_modulesdicerlibDicer.js:51:16)
at HeaderParser.emit (node:events:376:20)
at HeaderParser._finish (F:Node Projectsupload-downloadnode_modulesdicerlibHeaderParser.js:68:8) {
storageErrors: []
}

那么,我该如何以更好的方式处理它,并发送我在存储配置中抛出的确切错误呢?

提前感谢您的帮助。

我发现了如何获得确切的消息。您可以在err的消息属性中获取它。

console.log(err.message) //=>File type is different

最新更新