javascript - node.js,express,如何从post请求中的body表单数据中获取数据

标签 javascript node.js express

我有一个简单的 Node.js 应用程序。我想从用户那里获取帖子正文。

app.js

var express = require('express');
var app = express();

app.use(express.json());

app.post('/api/user', function (req, res) {
    console.log(req.body);
    console.log(req.body.username);
});

module.exports = app;

server.js

var app = require('./app.js');

var server = app.listen(3000, function () {

    var port = server.address().port;

    console.log('Web App Hosted at http://localhost:%s',port);

});

当我使用node server.js启动它时,一切都很好。当我和 postman 核对时 enter image description here

在控制台中,它返回

Web App Hosted at http://localhost:3000
{}
undefined

我有最新的 express 。

我尝试了其他方法,例如添加 body-parser、将 header 添加到 content-type、添加 express.urlencoded(),但没有一个起作用。我需要从 form-data 获取数据,就像上图中的 postman 一样。我怎样才能得到它?

最佳答案

几小时后,我找到了它。

body-parser 不是必需的,因为在最新的 Express 中已包含在内。

我已经找到了如何获取表单数据,它需要 multer(用于解析多部分/表单数据)中间件。我在 here 找到了它.

首先安装multer

npm install multer --save

在您的应用程序中导入 multer。例如在我的代码中

var express = require('express');
var app = express();
var multer = require('multer');
var upload = multer();

// for parsing application/json
app.use(express.json()); 

// for parsing application/x-www-form-urlencoded
app.use(express.urlencoded({ extended: true })); 

// for parsing multipart/form-data
app.use(upload.array()); 
app.use(express.static('public'));

app.post('/api/user', function (req, res) {
    console.log(req.body);
    console.log(req.body.username);
});

module.exports = app;

因此,它可以接收表单数据、原始数据或 x-www-form-urlencoded。

关于javascript - node.js,express,如何从post请求中的body表单数据中获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56758241/

相关文章:

node.js - 设置授权后 Express-Gateway 响应错误

javascript - NodeJS - The Node Beginner Book - 显示函数未被调用

javascript - LoDash 检查对象一和对象二的值是否相等(如果比较)

javascript - 压缩和调整用户上传的图像

node.js - ExpressJS 是否使用了无效的 set-cookie header ?

node.js - 如何为所有 Node/快速路由添加前缀

javascript - 为什么单击类元素​​时 jQuery 'closest' 不工作

javascript - 根据 Angular JS 中对象数组中的数组长度进行排序

ios - Socket.IO-Client-Swift 无法连接到nodejs socket.io 服务器

jQuery 如果单击时不起作用