Node.js req.body 表单数据内容类型未定义
Node.js req.body undefined in form-data content-type
我在这里为这个表单数据传递创建了一个小演示 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`);
});
服务器日志
Server started
form-data ->> {}
页眉
我试图通过小的改动来重现你的代码。
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}`);
});
我删除了你的服务器初始化,因为我们可以直接从 expressjs 使用应用程序监听。
我可以用“form-data”、“x-www-form-urlencoded”或“raw”成功发送 post。
您可能 double-check 您正在学习哪个教程。由于 express 文档足够清楚。
*已编辑
我添加了 multer 来解析 form-data.
我在这里为这个表单数据传递创建了一个小演示 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`);
});
服务器日志
Server started
form-data ->> {}
页眉
我试图通过小的改动来重现你的代码。
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}`);
});
我删除了你的服务器初始化,因为我们可以直接从 expressjs 使用应用程序监听。
我可以用“form-data”、“x-www-form-urlencoded”或“raw”成功发送 post。
您可能 double-check 您正在学习哪个教程。由于 express 文档足够清楚。
*已编辑 我添加了 multer 来解析 form-data.