Node.js req.body 在表单数据内容类型中未定义

Jay*_*ala 3 javascript form-data node.js express

在这里,我为这个表单数据传递 API 创建了一个小演示。现在我正在使用邮递员检查此 API,但我没有收到任何数据。

代码

const http = require("http");
const express = require("express");
const bodyParser = require("body-parser");

const app = express();

app.use(
  bodyParser.json({
    limit: "50mb"
  })
);

app.use(
  bodyParser.urlencoded({
    limit: "50mb",
    extended: true
  })
);

app.post('/form-data', (req, res) => {
  console.log("form-data ->> ", req.body) 
});

server = http.createServer(app);

server.listen(4000[![enter image description here][1]][1], () => {
  console.log(`Server started`);
});
Run Code Online (Sandbox Code Playgroud)

服务器日志

Server started
form-data ->> {}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

标头 在此输入图像描述

在此输入图像描述

tai*_*pei 6

我尝试通过一些小的更改来重现您的代码。

const express = require("express");
const bodyParser = require("body-parser");
var multer = require("multer");
var upload = multer();

const app = express();

// for parsing application/json
app.use(
    bodyParser.json({
        limit: "50mb",
    })
);
// for parsing application/xwww-form-urlencoded
app.use(
    bodyParser.urlencoded({
        limit: "50mb",
        extended: true,
    })
);

// for parsing multipart/form-data
app.use(upload.array());

app.post("/form-data", (req, res) => {
    console.log(`\nform-data ->> ${JSON.stringify(req.body)}`);
    res.send(req.body);
});

const port = 3000;
app.listen(port, () => {
    console.log(`Example app listening on port ${port}`);
});

Run Code Online (Sandbox Code Playgroud)

我删除了您的服务器初始化,因为我们可以直接从expressjs 使用应用程序监听。

我可以成功发送带有“form-data”、“x-www-form-urlencoded”或“raw”的帖子。

您可以仔细检查您遵循的教程。由于明确的文档足够清晰。

*编辑我添加了 multer 来解析表单数据。