流浪的菜袅 2023-03-05 23:55 采纳率: 79.5%
浏览 35
已结题

表单数据添加,报错前后端对应不上

大锅们好
我现在在做一个表单数据提交,但是状态码报了400,我估计是因为有图片数据上传原因,但是想不出是哪里出的问题
前端代码:

data:{
// 提交的数据
  formData:{
        src:'',
        stylename:"",
        typename:"",
        showtype:'false',
        discribe:"",
        time:moment(new Date()).format(),
        goodsname:"",
        goodstype:"",
        lablename:"",
        price:0,
        newprice:0,
        title:""
    },
// 提交事件
submitForm(formName) {
        this.$refs[formName].validate(async(valid) => {
            if (valid) {
                if(!this.formData.src) {
                    this.$message.error('请选择图片上传')
                    return
                }
                const data = await postSwiper({url:'alldata',data:this.formData})
                console.log(data);
            } else {
            console.log('error submit!!');
            return false;
            }
        });
    },
}

nodejs:

const express =  require('express')
const multer = require('multer')
const router = express.Router()
const pool = require('../model/index')
const moment = require('moment')
let date = new Date()
let times = date.getTime()
let originalname;
let random = Math.floor(Math.random() * (1000 - 100 + 1)) + 100
let urlStr; 
let obj;
let arr = [];
let src = ''
let storage = multer.diskStorage({
    destination: function(req, file, cb) {
        cb(null, 'routers/img'); 
    },
    filename: function(req, file, cb) {
        originalname = Buffer.from(file.originalname, "latin1").toString("utf8"); 
        urlStr = times + '-' + random + '-' + originalname
        times = date.getTime()
        random = Math.floor(Math.random() * (10000 - 100 + 1)) + 100
        src = 'http://localhost:3000/' + urlStr
        obj = {
            src,
            stylename:"产品风格,如:简约风",
            typename:"",
            showtype:'false',
            discribe:"备注",
            time:moment(new Date()).format(),
            goodsname:"商品名",
            goodstype:"产品分类:床垫",
            lablename:"",
            price:1000,
            newprice:0,
            title:'请输入商品标题'
        }
        arr.push(obj)
        cb(null, urlStr)
    }
})
let upload = multer({ storage: storage });
// 增加商品数据  PC
router.post('/',upload.array('avatar',3),(req,res) => {
    try {
        if(req.file) {
            pool.getConnection(function(err, connection) {
                if (err) return console.log(err);
                connection.query('insert into alldata values(0,?,?,?,?,?,?,?,?,?,?,?)',Object.values(arr[0]), function (error, results, fields) {
                    console.log('results',results);
                    connection.release();
                  if (error) return console.log(error);
                });
            })
            arr = []
        } else if(req.files) {
            arr.forEach(val => {
                pool.getConnection(function(err, connection) {
                    if (err) return console.log(err); 
                    connection.query('insert into alldata values(0,?,?,?,?,?,?,?,?,?,?,?)',Object.values(val), function (error, results, fields) {
                        console.log('results',results);
                        connection.release();
                      if (error) return console.log(error);
                    });
                })
            })
            arr = []
        } else {
            res.status(400).send(JSON.stringify({success: '服务器未接收到传递的数据或数据、格式错误'}))
            return
        }
        res.send({code:200,msg:"成功"})
    } catch (err) {
        res.status(500).send(err);
    }
})
module.exports = router

问题出在哪了啊大锅们,求解答

  • 写回答

1条回答 默认 最新

  • SSS4362 2023-03-06 07:20
    关注

    400一般是前台传到后台的数据,后台无法正常解析

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 6月3日
  • 已采纳回答 5月26日
  • 创建了问题 3月5日

悬赏问题

  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库
  • ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
  • ¥15 请问怎么才能复现这样的图呀