node.js - 如何将我本地系统中的图像传递给表单数据并传递该表单数据以通过 Axios 执行发布请求
问题描述
我无法在 axios 中正确传递表单数据,得到错误代码 422。有关参考,请参见下面的代码。在 curl 请求中提到我们必须传递标头和表单数据我想我已经完成了所有正确的操作,不确定表单数据。请查看它。
app.post("/images", async (req, res) => {
try {
var formData = new FormData();
const headers = {
"Content-Type": "multipart / form-data",
};
let resp = await axios.post(
"http://localhost:3000/api/v1/products/19/images",
null, {
headers: headers,
params: {
token: "myToken",
},
formData: {
"image[attachment]": "riceBasm2.jpeg",
type: "image/jpeg",
}
}
);
console.log(resp);
return;
} catch (err) {
console.log(err);
}
res.send("Image added succesfully");
});
解决方案
当我提到请求与邮递员一起工作时,我终于得到了答案,所以我搜索了邮递员代码部分并得到了答案。邮递员包含每种语言的代码,所以请检查一下你是否卡住了,当你的查询与邮递员一起工作但不是什么时候你用你自己的代码试试。
下面的代码在 Nodejs Axios 中
var axios = require('axios');
var FormData = require('form-data');
var fs = require('fs');
var data = new FormData();
data.append('image[attachment]', fs.createReadStream('/home/kiit/Bharatrath/riceBasm.jpeg'));
var config = {
method: 'post',
url: 'http://localhost:3000/api/v1/products/21/images?token=my_token',
headers: {
'Content-Type': 'multipart/form-data',
'Cookie': 'adonis-session=1b341136aeb0e89d23810f453b28ad40qUCo9HjeNsqhVFl3U0xVd1%2BTlbyFwN7ECZLo7nHYoad4VeEWnEMwXd%2FHT%2BKtXVyYAF6cHway6vNRYZGWIvR5%2BitS%2BuPgL%2FXzS02i77v4BkAvbb23vKqEQ2lb2cukfpfp; adonis-session-values=dbc2abc0c3695f76625c2c1cde19c125E9yRs0sOPTuSSDFpMDgEwAHsXzYJ38p4Y9JReim06COj8QA212fBid4IjEKRTY%2BdlNgA8w5zWpWINrCV50ddONU0IGfUlUBCa9fejdMpdmWmd96N%2FGTbxSih2Fwd1rfSNXg7FsNuGhdcFvyagphawRsUb5xcOjgY2TztZ4CiXsKm2w6Laf8Ye4s4cEM7B2fnngsdD2w3ZczpFco0fpo6yS8JATgW2ze8v%2BVeALFVWhQ%3D',
...data.getHeaders()
},
data : data
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
卷曲代码
curl --location --request POST 'http://localhost:3000/api/v1/products/21/images?token=2aff2732fa39f2064ac21dcfff63139cc20adb2122f8b500' \
--header 'Content-Type: multipart/form-data' \
--header 'Cookie: adonis-session=1b341136aeb0e89d23810f453b28ad40qUCo9HjeNsqhVFl3U0xVd1%2BTlbyFwN7ECZLo7nHYoad4VeEWnEMwXd%2FHT%2BKtXVyYAF6cHway6vNRYZGWIvR5%2BitS%2BuPgL%2FXzS02i77v4BkAvbb23vKqEQ2lb2cukfpfp; adonis-session-values=dbc2abc0c3695f76625c2c1cde19c125E9yRs0sOPTuSSDFpMDgEwAHsXzYJ38p4Y9JReim06COj8QA212fBid4IjEKRTY%2BdlNgA8w5zWpWINrCV50ddONU0IGfUlUBCa9fejdMpdmWmd96N%2FGTbxSih2Fwd1rfSNXg7FsNuGhdcFvyagphawRsUb5xcOjgY2TztZ4CiXsKm2w6Laf8Ye4s4cEM7B2fnngsdD2w3ZczpFco0fpo6yS8JATgW2ze8v%2BVeALFVWhQ%3D' \
--form 'image[attachment]=@/home/kiit/Bharatrath/riceBasm.jpeg'
推荐阅读
- node.js - 如果字段可以为空,则验证期间的装饰器仍然有效
- javascript - 如何在按下按钮时将 ID 存储在数组中?
- c# - 在这个相同的字符串数据中搜索数据并相互合并
- asp.net-mvc - 如何在引导程序中创建两色横幅
- excel - 使用VBA在嵌套xml中的一行中打印数组
- node.js - Firestore 查询 endBefore 和 endAt 未按预期工作
- android - avdmanager 的设备列表与 Android Studio 的不同
- python - Python Tkinter:如何在没有崩溃的情况下在按钮中制作无限循环功能?
- database - 无法使用提供的连接字符串连接到 MongoDB Compass
- python - Python:对嵌套列表进行排序