【问题标题】:How to store an image in MongoDB [duplicate]如何在MongoDB中存储图像[重复]
【发布时间】:2021-11-20 08:34:47
【问题描述】:

如何使用以下场景将图像存储到 MongoDB。

  • 下面是我的产品架构,我想在其中添加另一个字段图像并使用 Product.createProduct.insertMany 手动将图像与其他字段一起发布方法(以下示例)。
  • 手动插入图片意味着我从 Google 抓取了一些产品图片,但我无法弄清楚如何将它们存储在 MongoDB 中并在我的前端使用它们。
  • 我的目标只是使用前端 React 应用显示所有产品以及图片及其详细信息。
const mongoose = require('mongoose');

const productSchema = mongoose.Schema({
  name: String,
  category: String,
  price: Number,
});

const Product = mongoose.model('Product', productSchema);

module.exports = Product;
// Product.insertMany(
//   [
//     { name: 'Shoe one', category: 'Shoes', price: 3599 },
//     { name: 'Shirt one', category: 'Upperwear', price: 380 },
//   ],
//   (err) => {
//     if (err) console.log('error');
//   }
// );

【问题讨论】:

标签: node.js reactjs mongodb mongoose


【解决方案1】:

使用 Buffer 类型将图像存储为数组,如下所示

const mongoose = require('mongoose');

const productSchema = mongoose.Schema({
    name: String,
    category: String,
    price: Number,
    img:
    {
        data: Buffer,
        contentType: String
    }

});

const Product = mongoose.model('Product', productSchema);

module.exports = Product;

【讨论】:

  • 好的,但是我将如何使用 post.create 手动将图像发布到数据库?表示我应该如何为 img.data 键设置什么值 -- { name: 'Shirt one', category: 'Upperwear', price: 380, img: {data : ?????} }
  • @SatyamGupta,查看此 URL:stackoverflow.com/questions/34485420/… 基本上您需要将图像转换为 Base64 编码,然后稍后在服务器端将其转换回来。阅读上面的网址。
猜你喜欢
  • 1970-01-01
  • 2012-09-14
  • 1970-01-01
  • 2019-05-06
  • 2012-02-06
  • 1970-01-01
  • 2011-05-29
  • 2018-05-19
  • 1970-01-01
相关资源
最近更新 更多