[英]How to save image url to mongodb and get it back
请我尝试发帖并从 postman 获取请求,这会将图像的路径保存到 mongodb 而不是二进制。 我成功地将数据发布到 mongodb ,其中包括表单数据(文本和文件),但文件是缓冲区。 我希望它是二进制数据,所以当我想取回它时,我不会得到二进制数据。 文本已成功发布,并且正在获取所需的文本,但图像正在发送二进制文件并且正在获取二进制文件,这是一个非常糟糕的主意。
请我需要帮助。
//POST Request
app.post('/request', upload.single('images'), async function(req, res){
const requestBody = {
name: req.body.name,
description: req.body.description,
images: req.file.buffer
}
const request = new Request(requestBody)
try{
await request.save()
res.status(201).send()
}catch(e){
res.status(400).send(e)
}
})
//GET request
app.get('/request', async function(req, res){
try{
const requests = await Request.find({})
// console.log(requests)
res.send()
}catch(e){
res.status(500).send()
}
})
您可以将文件路径保存在公用文件夹中,并将带有字符串的路径保存在 mongodb
您需要在公共文件夹中创建photos
文件夹并将其设置为 static
mkdir -p public/photos
然后您可以使用 express static 注册路径
app.use(express.static(__dirname, 'public'))
并将所需的路径保存在db中。 在这里您应该使用存储在req.file.path
中的文件的 static 路径
const upload = require('multer')({ dest: path.join(__dirname, 'public/photos') })
app.post('/request', upload.single('images'), async function(req, res){
const requestBody = {
name: req.body.name,
description: req.body.description,
images: req.file.path
}
const request = new Request(requestBody)
try{
await request.save()
res.status(201).send()
}catch(e){
res.status(400).send(e)
}
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.