const formData = new FormData()
formData.append('choices', [1, 2, 3])
选择转换为
'1,2,3'
将其发送到节点JS,该节点JS失败了zod阀门,因为它预期了数组。数字也发生了同样的事情。
Axiospostrequest
axios.post('product', formData, {
headers: {
'Content-Type': 'multipart/form-data',
},
})
Https://developer.mozilla.org/en-us/docs/web/api/formdata/append
字段的价值。这可以是USVSTRING或BLOB(包括 子类,例如文件)。如果未指定这些值 被转换为字符串。
您可以通过以下方式将其转换回服务器端:
const choicesArray = choices.split(',').map(Number);
const numArray = [1, 2, 3, 4, 5];
const formData = new FormData();
formData.append("data", JSON.stringify(numArray));
post请求
在验证YUP中的模式之前,我使用以下方法来转换数据。数据作为字符串出现,但是在验证之前,我将其转换为:
serviceTags: Yup.array().transform((value, originalValue) => {
if (typeof originalValue === 'string') {
try {
return JSON.parse(originalValue);
} catch (error) {
return []; // Return an empty array if parsing fails
}
}
return value;
});