MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Stocker un fichier dans MongoDB en utilisant Multer dans Mongoose

Homme, vous courez sur le mauvais chemin. J'ai déjà expliqué dans votre demande de question précédente que Multer est utilisé pour enregistrer des fichiers dans le système de disque de fichiers et non directement dans votre base de données. Pour cela, vous devez utiliser GRIDFS.

Venir à votre question actuelle.

app.post('/Upload', upload.single('solution') ,function (req, res, next) {
    console.log(req.file);
});

Voici le upload.single('solution') - appelle une fonction Upload et le nom de fichier passé est solution mais il est assez évident qu'il n'est pas disponible ici.

utiliser ce type de format - documentation de Multer

var storage = multer.diskStorage({
  destination: function (req, file, cb) {
    cb(null, '/tmp/my-uploads')
  },
  filename: function (req, file, cb) {
    cb(null, file.fieldname + '-' + Date.now())
  }
})

var upload = multer({ storage: storage })

La partie de stockage est utilisée pour donner le chemin d'accès à l'endroit où votre fichier doit être enregistré et la section du nom de fichier est utilisée pour apporter des modifications au nom de fichier que vous souhaitez avoir.

Veuillez lire la documentation car cela vous aidera. Lorsque nous utilisons des modules tiers, nous devons reconnaître les informations qu'ils ont déjà fournies afin que nous puissions utiliser leur travail facilement.

Laissez-moi vous faciliter la tâche. Voici un code prêt à l'emploi qui fonctionne.

Multer lançant une erreur étrange lors du téléchargement de fichier via le téléchargement de fichier ng

Allez vérifier ce fil. La question a été soulevée par moi - le problème était que j'envoyais des fichiers au format tableau, comme dans plusieurs fichiers à la fois. Si vous ne le faites pas, modifiez simplement le segment ng-file-upload pour utiliser l'exemple de démonstration de téléchargement unique et, côté serveur, le code nodejs remplace .array avec .single et les choses fonctionneront comme vous le souhaitez - étant donné que vous souhaitez utiliser le système de disque de fichiers pour stocker les fichiers.

Je répète que cette méthode ne vous aidera pas à enregistrer directement le fichier dans mongodb.

Faites-moi savoir si vous avez besoin d'autres éclaircissements.