我有一个简单的 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;
服务器.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);
});
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
, add express.urlencoded()
,但没有一个起作用。我需要从中获取数据form-data
就像上图中的邮递员一样。我怎样才能得到它?
几个小时后,我找到了它。
body-parser 它不是必需的,因为在最新的 Express 中已包含在内。
我已经找到了如何获取表单数据,它需要 multer(用于解析多部分/表单数据)中间件。我发现它在here https://www.npmjs.com/package/multer.
首先安装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。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)