将图像上传到数据库(React,Express,MongoDB)

我正在尝试将一堆图像从前端(反应)网站上传到后端(Express,Mongoose)本地主机。但是,似乎数据已发送,但服务器未收到。

如果我从数据库中删除了fileList行,则可以在本地主机中看到其余产品属性。

将图像上传到数据库(React,Express,MongoDB)

将图像上传到数据库(React,Express,MongoDB)

但是,如果我将fileList行添加到数据库类型中,则无法在本地主机中看到任何数据。

将图像上传到数据库(React,Express,MongoDB)

似乎已发送数据,但服务器未接收到它。因此,我认为我的数据库类型定义或后端代码有问题。谁能帮我?非常感谢!

这是我的数据库类型

product:{
        'productName':{type:String,'require':true},'productCategory':{type:[String],'productSubcategory':{type:String,'productTag':{type:[String],'productPrice':{type:String,'productDescription':{type:String,'fileList':{type:[Buffer],'require':true}
    }

这是我的后端代码

Router.post('/addProduct',function(req,res){  
    const {type} = req.body 
    const {productName} = req.body
    const body = req.body
    Product.findOne({productName},function(err,doc){

        const productModel = new Product(req.body)
        productModel.save(function(e,d){
            if (e) {
                return res.json({code:1,msg:'Something goes wrong'})
            }       
            return res.json({code:0,data:req.body})
        })              
    })
})

这是我相关的前端代码

        this.state = {
            tagData :[],categoryDate:[],productName:'',productCategory:'',productSubcategory:'',productTag:'',productPrice:'',productDescription:'',previewVisible: false,previewImage: '',fileList: [],uploading: false,}

    handleChange = ({ fileList }) => this.setState({ fileList });

    handleSubmit = e => {
      e.preventDefault();
      this.props.form.validateFields((err,values) => {
        if (!err) {
          this.setState({            

            productName:values.ProductName,productCategory:values.ProductCategory,productSubcategory:values.ProductSubcategory,productTag:values.ProductTag,productPrice:values.ProductPrice,productDescription:values.ProductDescription,},function(){
            this.props.addProduct(this.state)
            console.log('Received values of form: ',this.state);
          })
        }
      })
    };

    //save the image into the file list
    <Upload                                     
      listType="picture-card"
      fileList={fileList}
      onPreview={this.handlePreview}
      onChange={this.handleChange}
      {...props}
      >
      {fileList.length >= 8 ? null : uploadButton}
    </Upload>

    //Submit button
    <Button type="primary" 
        onClick={this.handleSubmit}
        loading={uploading}>
        Confirm
    </Button>

这是我的软件包版本

"express": "^4.17.1","react": "^16.9.0",
liuhongwen19 回答:将图像上传到数据库(React,Express,MongoDB)

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3162560.html

大家都在问