当我尝试将此模式数据发布到Form.js中时,出现错误。Mongoose模式如下所示:
const postSchema = mongoose.Schema({
title: String,
message: String,
creator: String,
tags: [String],
selectedFile: String,
likeCount: {
type: Number,
default: 0
},
createdAt: {
type: Date,
default: new Date()
},
});
创建帖子的逻辑是这样的:
export const createPost = async (req, res) => {
const post = req.body;
const newPost = new PostMessage(post);
try {
await newPost.save();
res.status(201).json(newPost);
} catch(error){
res.status(409).json({ message: error.message });
}
}
我以字符串形式上传图像,并使用React中的base64转换图像,如下所示-
import FileBase from 'react-file-base64';
<div className={classes.fileInput}><FileBase type="file" multiple="false" onDone={(base64) => setPostData({ ...postData, selectedFile: base64})}/></div>
当我尝试提交表单时,我收到类似-{“message”:“PostMessage验证失败:所选文件:将值强制转换为字符串失败
2条答案
按热度按时间nnt7mjpx1#
找到了答案,我在onDone后面的base64周围缺少了{}个括号。所以它应该是这样的:
<div className={classes.fileInput}><FileBase type="file" multiple={false} onDone={({ base64 }) => setPostData({ ...postData, selectedFile: base64 })} /></div>
mspsb9vt2#
您遗漏了
onDone={({ base64 })
中base64
前后的大括号。是的,你必须添加{}到base64我测试了它,它工作!!!