javascript - axios - 发送表单数据和非表单数据
问题描述
我正在使用 axios 将数据发送到我的 nodejs/express 服务器。如果我想发送表单数据,我会执行以下操作(并且效果很好):
const formData = new FormData();
formData.append('nameOfFile', the_file);
axios({
method: 'post',
url: '/someRoute',
data: formData
headers: {
'Content-Type': 'multipart/form-data'
}
}).then(response => {
// Do something with response
}).catch(err => {
// Do something with err
});
同样,上面的代码工作正常。这是它要到达的/someRoute端点:
app.post('/someRoute', (req, res) => {
const uploadedFile = req.files.nameOfFile;
res.send('success'):
});
端点始终成功接收文件。到目前为止,一切都很好。
如果我想发送一些其他数据,比如date,我可以这样发送(它也可以):
const date = '2012-02-13';
axios({
method: 'post',
url: '/someRoute',
data: date
})
app.post('/someRoute', (req, res) => {
const date = req.body.date;
res.send('success'):
});
但是如何发送formDate和date数据呢?我尝试了以下方法(但它不起作用):
const formData = new FormData();
formData.append('nameOfFile', the_file);
axios({
method: 'post',
url: '/someRoute',
data: {
form: formData,
date: '2012-02-13'
},
headers: {
'Content-Type': 'multipart/form-data'
}
}).then(response => {
// Do something with response
}).catch(err => {
// Do something with err
});
和端点:
app.post('/someRoute', (req, res) => {
const uploadedFile = req.files.nameOfFile;
const date = req.body.date;
res.send('success'):
});
这给了我一个500 ERROR。
解决方案
你可以做你已经做过的同样的事情,只是附加你也想发送到 formData 的其他数据。所以 formData.append('date', date);
推荐阅读
- c++ - 如何防止初始化列表中的错误值?
- nuget - 确保只能从特定源安装 NuGet 包
- linux - 如何使用 mobaXterm 将本地文件正确上传到服务器?
- android-fragments - 将值从一个片段传递到另一个片段
- java - libc++abi.dylib:使用 JAVA 构建 OpenGL 应用程序时以 NSException 类型的未捕获异常终止
- kubernetes - 如何将秘密挂载到 Kubernetes StatefulSet
- c# - OpenGL将错误的数据写入图像
- node.js - AWS Amplify 配置不允许登录控制台
- ubuntu-18.04 - 为什么我的 Ubuntu 机器没有 /dev/cpu/0/cpuid 目录?
- arrays - LeetCode 二和问题 - 多维数组帮助 Java