【发布时间】:2020-11-02 18:21:06
【问题描述】:
寻求有关使用 multer 从 MongoDb 上传和检索图像的帮助。
我的前端是 ReactNative。(不确定是否需要,但只是为了确定。)
穆特
问题:在查看并遵循教程后,我能够将我的路径编码为 base64 并将其上传到我的数据库,但现在我很困惑如何从我的数据库中检索文件。我看到了一些关于从 base64 解码它的教程,但我不太明白如何检索图像并在邮递员中显示它。 (我试着寻找,但没有找到任何能给我答案的东西。如果这是一个重复的问题,我很抱歉。如果你能指出我的方向或给我一些建议,我会非常感激。)
**POST**
route.post("/sad", upload.single("image"), (req, res, next) => {
console.log(req.file);
const img = fs.readFileSync(req.file.path);
const img_enc = img.toString('base64');
const obj = {
usrImage: {
data: new Buffer.from(img_enc, 'base64'),
contentType: "image/jpg",
},
};
console.log(obj);
const newAccout = new account(obj);
newAccout.save();
});
**RETRIEVE**
route.get('/sad',(req,res)=>{
img.find({}).then((img)=>{
res.json(img)
//How do decode my buffer to show an image in Postman?
})
}
)
我正在尝试创建一个保存用户名、密码和图像的用户配置文件。如果您可以帮助保存图像,然后从我的帐户集合中检索它。
【问题讨论】:
-
只是一个疯狂的猜测:如果你想显示它,我认为你不应该用 JSON 对象包装 IMG 数据。您应该传递一些内容类型标题(图像/jpg)并将响应选项卡更改为在邮递员中预览。
-
感谢您的回复。您能否详细说明如何传递内容类型标头?
-
nodejs.org/api/http.html#http_response_setheader_name_value 这里是文档中对应的地方。内容类型标头用于告诉客户端如何呈现数据。
标签: node.js mongodb express multer