【发布时间】:2019-07-16 11:15:06
【问题描述】:
我浏览了很多其他帖子,对此我很迷茫。
我可以运行console.log(req) 并获得以下输出
ServerResponse {
...
req:
IncomingMessage {
...
url: '/my-endpoint',
method: 'POST',
statusCode: null,
statusMessage: null,
...
body: { foo: 'bar' },
_body: true,
...
route: Route { path: '/my-endpoint', stack: [Object], methods: [Object] } },
...
看起来很可靠,所以我希望在控制台中执行 console.log(req.body) 并返回 { foo: 'bar' }...但是不,未定义
经过研究,我发现这可能与我的app.js 文件有关,特别是与body-parser 有关,但是,我已经拥有所有这些了
var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var http = require('http');
var app = express();
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'pug');
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
//Home Page Rendering
var index = require('./routes/index');
app.use('/', index);
// All other routes are kept in the `routes` module
require('./routes')(app);
module.exports = app;
routes.js
module.exports = function routing(app) {
var apiClient = require('./services/apiClient');
app.post('/get-device-info', function(err, req, res){
console.log("/get-device-info routes");
apiClient(req, res);
});
};
apiClient.js
module.exports = function callApi(req, res){
console.log(req);
console.log(req.body)
};
index.js
var express = require('express');
var router = express.Router();
/* GET home page. */
router.get('/', function(req, res, next) {
res.render('index', { title: 'Express' });
});
module.exports = router;
这是我尝试过的
app.use(express.bodyParser());
确保传入的请求明确声明 application/json
以其他方式声明body parser.json
添加配置函数
【问题讨论】:
-
您使用的是哪个版本的 Express?您可能希望坚持使用 4.x 和单独的
body-parser模块,而不是express.bodyParser。能否也包含索引路由功能? -
他确实坚持使用单独的 body-parser...
-
我不知道为什么我在这件事上被否决了。向 OP 添加了更多代码。我正在使用节点 7.4.0 并表示 4.15.0
-
请在服务器处理请求头之前包含发送到服务器的请求头。 (浏览器的网络标签)