MongoDB 中的文本是“未定义”,而不是文件数据已成功上传

Posted

技术标签:

【中文标题】MongoDB 中的文本是“未定义”,而不是文件数据已成功上传【英文标题】:Text is "undefined" in MongoDB instead file data is successfully uploaded 【发布时间】:2019-10-27 13:29:30 【问题描述】:

我正在玩 MERN,并开发图像上传网站。我试图上传带有来自 React 输入的文本的图像。我可以成功上传。但是,文本未“未定义”。这是我的尝试。

//React//
const Landing = () => 
  const [imageState, setImageState] = useState(
    text: "",
    image: null,
    redirect: false
  );
  const onChange = e => 
   setImageState(
      [e.target.name]: e.target.value
    );
  ;

 const upload = e => 
      formData.append("myimage", image);
      formData.append("text", text);
      await axios.post("/upload", formData);

      <form
        onSubmit=e => upload(e)/>
        <input
          type="text"
          name="text"
          value=text
          onChange=e => onChange(e)
        />
        <input type="file" name="myimage" onChange=e => imageChange(e) />
        /* renderRedirect() */
        <input type="submit" value="Upload Photo" />

//Node//
router.post("/upload", (req, res) => 
  upload(req, res, err => 
    if (err) 
      console.error(err.message);
    

    let data = new ImageModel(
      text: req.body.text,
      image: req.file.originalname
    );
    data.save().then(result => 
      res.send(result);
    );
  );

【问题讨论】:

【参考方案1】:

在您的 setImageState 方法中,我不确定 e.target.name 在设置字段参数时是否有效。请尝试 e.target.id 。示例:

setImageState(
  [e.target.id]: e.target.value
);

【讨论】:

感谢您的建议。它不起作用。我意识到这部分似乎无法正常工作。因为输入元素没有id,但它仍然允许更新输入。

以上是关于MongoDB 中的文本是“未定义”,而不是文件数据已成功上传的主要内容,如果未能解决你的问题,请参考以下文章

使用 Web API 检索块中的文件数据以在浏览器中显示 (WIP)

无法创建目录或文件?急急急啊!!

可以在 C# 中打开的最大文件数是不是有限制?

在所有子目录中查找具有特定扩展名的文件数

如何使用 Python 计算目录中的文件数

如何计算每个目录中的文件数?