簡體   English   中英

Mongoose 架構錯誤:“為值轉換為字符串失敗”

[英]Mongoose Schema Error: "Cast to string failed for value"

嗨,伙計們,當我嘗試使用 Mongoose Schema 發送字符串數組時出現錯誤,它對於標簽而不是 selectedFile 工作正常。

貓鼬架構:

import mongoose from "mongoose";

const postSchema = mongoose.Schema({
  title: String,
  message: String,
  name: String,
  creator: String,
  tags: [String],
  selectedFile: [String],
  likes: {
    type: [String],
    default: [],
  },
  comments: { type: [String], default: [] },
  createdAt: {
    type: Date,
    default: new Date(),
  },
});

const PostMessage = mongoose.model("PostMessage", postSchema);

export default PostMessage;

控制器.js

export const createPost = async (req, res) => {
  const post = req.body;
  console.log(post);
  const newPostMessage = new PostMessage({
    ...post,
    creator: req.userId,
    createdAt: new Date().toISOString(),
  });
  try {
    await newPostMessage.save();

    res.status(201).json(newPostMessage);
  } catch (error) {
    res.status(409).json({ message: error.message });
  }
};

表單.js

const onChange = async (event) => {
    dispatch({ type: START_LOADING });
    let imgArr = "";
    let obj = event.target.files;
    for (let i = 0; i < obj.length; i++) {
      try {
        const file = obj[0];
        const image = await resizeFile(file);
        imgArr.push(image);
      } catch (err) {
        console.log(err);
      }
    }
    setPostData({ ...postData, selectedFile: ["imgArr"] });
    dispatch({ type: END_LOADING });
  };

對於測試,我將 dammy 值設為 ["imgArr"] 並收到此錯誤消息:“PostMessage 驗證失敗:selectedFile:Cast to string failed for value“['imgArr']”(類型數組)在路徑“selectedFile””

我可以做什么 ? 記住標簽的工作,他接受字符串數組

我找到了解決方案

JSON.stringify (imgArr)

它解決了我的問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM