Это мое простое приложение nodejs, использующее экспресс:
const express = require('express');
const app = express();
const user = require('./routes/user').user;
const browser = require('./routes/browser');
const bodyParser = require('body-parser');
// CORS middleware
const allowCrossDomain = function(req, res, next) {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Methods', '*');
res.header('Access-Control-Allow-Headers', '*');
next();
}
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(allowCrossDomain);
app.use('/', user);
app.use('/', browser);
const port = process.env.PORT || 4001;
app.listen(port, function() {
console.log('Express server listening on port ' + port)
});
Обработчик маршрута "браузер", в который я добавил промежуточное ПО:
const express = require('express');
const router = express.Router();
router.use(function (req, res, next) {
console.log(req.body);
next();
});
router.post('/get-content', (req, res) => {
});
Консоль
Здесь у меня странное поведение с промежуточным ПО.Я хочу получить данные тела запроса, но в консоли я вижу пустой объект вместо ожидаемого тела с содержимым.После вызова next () промежуточное программное обеспечение запускается второй раз, и, наконец, я получаю тело запроса.Помогите мне понять поведение промежуточного программного обеспечения в моем случае.