node.js - React - Nodejs FormData - req.body 为空 {}
问题描述
我正在尝试在我的 Web 客户端应用程序中使用 FormData,因为我想上传文件。目前,即使没有文件,我也会遇到无法解决的问题,所以也许有人可以在这里帮助我......
这是代码:
客户端(下一个 js):
这是 HTML 部分:
<form onSubmit={handleSubmit} encType="multipart/form-data">
<input type="text" value={fullName} onChange={(e) => setFullName(e.target.value)} />
<button type="submit">Send Message</button>
</form>
这是handleSubmit
功能:
const handleSubmit = (e) => {
e.preventDefault();
let contactData = new FormData()
contactData.append("fullName", fullName);
axios({
method: 'post',
url: SERVER_URL + "/contactUs",
data: contactData,
headers: { 'Content-Type': 'multipart/form-data' }
})
};
现在,服务器端(Node js)如下所示:
这是 app.js 的一部分:
var app = express();
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
我也尝试用 express 替换 bodyParser,也没有工作。我的 body parser 版本是 1.19.0,express 版本是 4.17.1。
最后是路由器:
router.post('/contactUs', (req, res) => {
console.log(req.body);
})
问题是上面一行的输出总是 {} !
请问有人有什么想法吗?
解决方案
推荐阅读
- javascript - 如何更改整个页面的字体大小?
- nightwatch.js - 如何在测试失败时停止 Nightwatch 进程?
- javascript - 使用 owl carousel 在触摸设备上滑动时禁用垂直滚动
- sql - 在连接两个表时需要帮助,但连接表中没有完全相同的信息
- angular - 如何正确处理角度路由订阅,然后将参数用于并行 http 请求
- c# - 组合框 ownerdrawfixed 删除项目 c#
- kettle - 无法从 Linux 命令行工具发现 Pentaho 存储库中的目录
- laravel - Laravel Nova Vue 组件未呈现
- php - 如何从 Wordpress 的新用户欢迎电子邮件中的密码链接中删除 <> 字符?
- signalr-hub - SignalR 异步集线器方法阻止客户端连接