[英]mongoose array saved in wrong order or got error 'Cast to string failed for value' if schema for array is defined
[英]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.