问题描述
我正在构建一个节点应用程序,以将客户端中的文件保存在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 (将#修改为@)