【发布时间】:2020-08-20 17:42:15
【问题描述】:
所以我使用邮递员通过快递库将图像发送到邮递路线。我从中得到二进制东西的缓冲区,它不允许我处理东西。使用 body-parser 会有所帮助吗?
这是我上传文件的地方:
app.post('/uploads', upload.single('upload'), async (req, res) => {
const imgBuffer = req.file.buffer
console.log(imgBuffer.toString())
// await client.query('UPDATE rooms SET room = $1', [imgBuffer])
res.send()
})
这是我在邮递员上发出请求后的输出:
这不允许我在 postgres 上存储任何东西。好吧,我看到使用base64会更好存储......我真的不知道。有人可以帮忙吗?
【问题讨论】:
-
可以用base64存储;但通常更好的选择是将图像存储在磁盘上,并将对路径/文件名的引用存储在数据库中。
-
好的,但是我如何将此缓冲区转换为 base64?
-
将缓冲区转换为字符串需要编码
-
var imgData = Buffer.from('abc')'; imgData === Buffer.from(imgData.toString('base64'), 'base64').toString() // true
标签: javascript node.js postgresql express multer