首页 > 解决方案 > 多张图片 + Node.js + Sequelize + Mysql

问题描述

我想要在 Sequelize + node.js 和 MySQL 数据库 whereProduct.hasMany(images)images.belongsTo(Product). 我想将多张图片上传到数据库。

我已完成将多个图像上传到 AWS S3。但我想将这些图像的返回链接存储到数据库中。我无法处理这种关系,因为我无法同时将所有图像的链接添加到数据库。我想要的只是将不同的图像连同它所属的产品 ID 添加到表的每一行。

标签: mysqlnode.jsexpressormsequelize.js

解决方案


我不确定 AWS S3 如何上传文件(图像),但我认为逻辑与以下相同

let images = [];
// to see if files field exist
if(req.files) {
  // logic to save url in db
  for (let i=0; i < req.files.length; i++) {
    let image = await Image.create(req.files[i])
    images.push(image)
  }
} 
// will assume req.body has required fields
const product = await Product.create(req.body)
// here use association mixins
await product.addImages(images);

要了解有关关联混合的更多信息,请查看此链接stackoverflow-question-about-sequelize-mixins


推荐阅读