首页 > 解决方案 > 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);
})

问题是上面一行的输出总是 {} !

请问有人有什么想法吗?

标签: node.jsformsnext.jsmultipartform-dataform-data

解决方案


推荐阅读