gridfs不恢复文件对象节点mongo

问题描述

我正在构建一个节点应用程序,以将客户端中的文件保存在mongo db中,因此我想到了使用GridFs来存储它们,但是当我发布文件时,响应文件对象却没有得到 {}

我在下面附加的代码

导入和与数据库连接

const express = require("express")
const path = require("path")
const mongoose =require("mongoose")
const bodyparser = require("body-parser")
const crypto = require("crypto")
const multer  = require("multer")
const GridFsstorage = require("multer-gridfs-storage")
const Gridfs = require("gridfs-stream")

const  url  =  "mongodb://localhost:27017/antenna"

const  connect  =  mongoose.connect(url,{ useNewUrlParser: true,useUnifiedTopology: true })
connect.then(db  =>  {
    console.log("connected correctly to the server")})

初始化gfs

var gfs
const connection = mongoose.connection
connection.on('error',console.error.bind(console,'connection error'))



connection.once('open',() => { 
    //init stream
     const mongoDriver = mongoose.mongo
     gfs = new Gridfs(connection.db,mongoDriver)
     gfs.collection('uploads')
})
//create storage engine 

const storage = new GridFsstorage({
    url:  url,file : (req,res) => {
        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: 'uploads'
            }
            resolve(fileInfo)
            })
        })
    }
})
const uploads = multer({ storage })

创建发布路线

app.post('/uploads',uploads.single('file'),(req,res) =>{
    try{
    res.json({file: req.body.file})
    }catch(err){res.json({message:err})}
})

我发布文件时得到 {}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)