【发布时间】:2022-02-18 20:58:20
【问题描述】:
我的文章架构包含标签字段。
tags: {
type: [String],
required: [true, "A article must have a tags"],
enum: {
values: [
"science",
"technology",
"gaming",
],
message: "Article must have tags",
},
},
表单内特定字段的我的 Pug 模板
input#checkbox1(type="checkbox", name="science", value="science")
| science
br
input#checkbox2(type="checkbox", name="technology", value="technology")
| technology
br
input#checkbox3(type="checkbox", name="gaming", value="gaming")
| gaming
我的 javaScript 文件处理 POST 请求以将数据发送到 postArticle.js 中的 axios 函数
const composeArticle = document.querySelector(".formComposePost");
if (composeArticle) {
composeArticle.addEventListener("submit", (e) => {
e.preventDefault();
const form = new FormData();
form.append("author", document.getElementById("userid").value);
form.append("title", document.getElementById("heading").value);
let tagArray = [];
let science = document.getElementById("checkbox1");
if (science.checked) {
tagArray.push(science.value);
}
let technology = document.getElementById("checkbox2");
if (technology.checked) {
tagArray.push(technology.value);
}
let gaming = document.getElementById("checkbox3");
if (gaming.checked) {
tagArray.push(gaming.value);
}
form.append("tags", tagArray);
form.append(
"imageCover",
document.getElementById("image").files[0]
);
postArticle(form);
PostArticle 处理函数 我正在使用 axios 将数据发布到 API 但我不能发布数据
export const postArticle = async (data) => {
try {
const res = await axios({
method: "POST",
url: "http://127.0.0.1:3000/api/v1/articles/",
data,
});
console.log(res);
if (res.data.status === "success") {
alert("success")
window.setTimeout(() => {
location.assign("/");
}, 1000);
}
} catch (error) {
console.log(error.response.data.message);
}
};
我提交表单后控制台中的错误消息
message: 'Article validation failed: tags.0: Article must have tags'
【问题讨论】:
-
你在
form.append("tags", tagArray)将一个数组传递给标签,但是你的tags: is declared as type: [String]?
标签: javascript node.js mongodb express axios