我正在尝试将一堆图像从前端(反应)网站上传到后端(Express,Mongoose)本地主机。但是,似乎数据已发送,但服务器未收到。
如果我从数据库中删除了fileList行,则可以在本地主机中看到其余产品属性。
但是,如果我将fileList行添加到数据库类型中,则无法在本地主机中看到任何数据。
似乎已发送数据,但服务器未接收到它。因此,我认为我的数据库类型定义或后端代码有问题。谁能帮我?非常感谢!
这是我的数据库类型
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",