我在Mongoose / MongoDB中遇到了一些奇怪的行为。
我的数据架构是:
photo: {data: Buffer, contentType: String}
我使用以下代码将图像上传到mongoose:
let upload = (req, res) => {
User.findByIdAndUpdate(req.params.id, { photo: fs.readFileSync(`uploads/${req.file.originalname}`)
}, {safe: true, new: true})
.exec()
.then(() => {
sendJsonResponse(res, 200, {"message": "photo uploaded"})
})
.catch(err => {
sendJsonResponse(res, 500, err)
})
};
以上成功上传图片如下:
奇怪的行为:
根据我的知识,mongoose / mongoDB将binary data
作为binary data
返回,并且用户必须先将其转换为base64 string
才能使用它。我错了吗?
就我而言,当我从mongoose中提取数据时,我没有得到binary data
。我得到转换后的base64
。 请注意,我没有在任何转换二进制数据的地方放置任何代码。
下面是返回数据的图像:
在将数据返回给用户之前我console.log
我的数据服务器端:
我的问题:
如果mongoose能够自动执行此操作,那就太棒了!但我很困惑这是一个错误还是一个功能。