node.js,express,如何在post请求中从body form-data中获取数据 [英] node.js, express, how to get data from body form-data in post request
问题描述
我有一个简单的 node.js 应用程序.我想从用户那里获取帖子正文.
I have a simple node.js app. I want to get post body from user.
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
启动它时,它很好.当我与邮递员核对时,
When i launch it with node server.js
, its fine. When i check it with postman,
在控制台中,它返回
Web App Hosted at http://localhost:3000
{}
undefined
我有最新的快递.
我尝试了其他的事情,比如添加 body-parser
,添加标题到 content-type
,添加 express.urlencoded()
,但没有工作.我需要像上面图片中的邮递员一样从 form-data
获取数据.我怎样才能得到它?
And i have try other thing like add body-parser
, add header to content-type
, add express.urlencoded()
, but none work. i need to get data from form-data
like postman on picture above. How i can get it?
推荐答案
下班后,我找到了.
body-parser 不需要,因为在最新的 express 中包含了.
body-parser its not required because in newest express is included.
我已经找到了如何获取表单数据,它需要 multer(用于解析多部分/表单数据)中间件.我在这里找到了它.
i have found how to get form-data, it require multer(for parsing multipart/form data) middleware. i have found it in here.
首先安装multer
npm install multer --save
在您的应用中导入multer.例如在我的代码中
import multer in your app. for example in my code
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.
so, it can receive form-data, raw, or x-www-form-urlencoded.
这篇关于node.js,express,如何在post请求中从body form-data中获取数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!