node.js - 图像不能是数组或对象 - sequelize、postgres、nodejs、multer

标签 node.js postgresql sequelize.js multer

我正在尝试向数据库发出发布请求,图像的数据类型是一个字符串,我可以上传一个、两个或多个图像。
我应该如何存储图像?
这是我的帖子模型

const Sequelize = require("sequelize");
const db = require("../config/database");

const Posts = db.define(
 "post",
{
id: {
  type: Sequelize.INTEGER,
  primaryKey: true,
  autoIncrement: true,
},
title: {
  type: Sequelize.STRING,
},
images: {
  type: Sequelize.STRING,
    }})
这是我的post方法:
 router.post(
"/",
[
upload.array("images", config.get("maxImageCount")),
imageResize,
 ],
 async (req, res) => {
const paths = await req.files.map((file) => ({ fileName: file.filename }));
Posts.create({
  title: req.body.title,
  images: paths,     
  }).then(
  () => {
    res.status(201).send({
      msg: "upload successful",
    });
  },
  (validation) => {
    res.status(422).json({
      errors: validation.errors.map((error) => {
        return {
          fieldName: error.path,
          message: error.message,
        };
      }),
    });
    }
  );
 }
);
为什么我老是报错???
{
"errors": [
    {
        "fieldName": "images",
        "message": "images cannot be an array or an object"
    }
]
}

最佳答案

您的代码定义了 const paths = ...,但随后您的 Posts.create() 使用没有“S”的 path。我认为这是您问题中的一个错字,因为 req.files.map() 会生成一个数组。您不能将数组插入到列值中,这是错误告诉您的。

关于node.js - 图像不能是数组或对象 - sequelize、postgres、nodejs、multer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64753687/

相关文章:

node.js - pm2 停止和删除应用程序之间的区别

javascript - 如何运行在其他文件中定义的 get 和 post 等应用程序功能

Postgresql:我们如何使用时间戳将时间和日期仅插入到变量中?

javascript - 如何使用 sequelize.js 将表的列设置为外键

javascript - 在 docker compose 中运行后续迁移

mysql - 将每个部署中的生产数据库同步到暂存Heroku

mysql - 如何获得一组记录的总和?

postgresql - 使用游标执行函数时出错

javascript - Sequelize hasMany 通过另一个表

node.js - 将更新的更改 pull 入已部署的 Docker 容器的最佳方法是什么?