Получение ошибки базы данных Sequelize, неверные аргументы для mysql_stmt_execute - PullRequest
0 голосов
/ 11 июля 2020

Я использую Postman для тестирования маршрута POST для моего API, используя Sequelize, node и express. в разработке, работает нормально. Но на производстве он показывает ошибку

Executing (default): INSERT INTO `hr_file` (`id`,`path`,`createdAt`,`updatedAt`) VALUES (DEFAULT,?,?,?);
Unhandled rejection SequelizeDatabaseError: Incorrect arguments to mysqld_stmt_execute
    at Query.formatError (/app/node_modules/sequelize/lib/dialects/mysql/query.js:244:16)
    at Execute.handler [as onResult] (/app/node_modules/sequelize/lib/dialects/mysql/query.js:51:23)
    at Execute.execute (/app/node_modules/mysql2/lib/commands/command.js:30:14)
    at Connection.handlePacket (/app/node_modules/mysql2/lib/connection.js:408:32)
    at PacketParser.Connection.packetParser.p [as onPacket] (/app/node_modules/mysql2/lib/connection.js:70:12)
    at PacketParser.executeStart (/app/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.Connection.stream.on.data (/app/node_modules/mysql2/lib/connection.js:77:25)
    at Socket.emit (events.js:198:13)
    at Socket.EventEmitter.emit (domain.js:448:20)
    at addChunk (_stream_readable.js:288:12)
    at readableAddChunk (_stream_readable.js:269:11)
    at Socket.Readable.push (_stream_readable.js:224:10)
    at TCP.onStreamRead [as onread] (internal/stream_base_commons.js:94:17)

эта схема модели кода

module.exports = (sequelize, DataTypes) => {
  const Hrfile = sequelize.define('hr_file', {
      id: {
        type: DataTypes.INTEGER,
        primaryKey: true,
        autoIncrement: true
      },
      path: DataTypes.ARRAY(DataTypes.TEXT),
    },
    {
      freezeTableName: true,
    }
  );

  return Hrfile;
}

этот код Маршрутизатор

 app.post("/hrfile", upload.array('file'), (req, res) => {

    if(req.files.length === 0){
      return res.status(400).json({ msg: 'Please input file' });    
    }
        const reqFiles = [];
        const url = req.protocol + '://' + req.get('host')

        for (var i = 0; i < req.files.length; i++) {
            reqFiles.push(url + '/images/' + req.files[i].filename)
        }
        
        db.hr_file.create({
           path : reqFiles
        })
        .then(r =>  {
           res.json(r.get({plain:true}));
        });
 });

Почему он не работает в производстве?

...