Nodejs / Express не может последовательно извлечь тело из сообщения. Несколько звонков в быстрой последовательности успешно - PullRequest
1 голос
/ 07 мая 2019

Я создаю простой Mock-сервер, на который я хочу (пока) ответить на сообщение с телом запроса.У меня возникла проблема, из-за которой я не могу последовательно получить тело этого запроса.

Иногда это работает, но только если я быстро делаю несколько сообщений.Если я задерживаюсь более 5 секунд между сообщениями, тело выглядит как {}.

Как я могу гарантировать, что я всегда получаю тело?Я ценю любую помощь, оказанную!Я новичок в узле, поэтому я уверен, что есть некоторые очевидные ошибки.

  1. Я отправляю запрос, используя Postman, и установил заголовок для «Content-Type» со значением «application / json»".
  2. Я использую bodyParser.json () после определения приложения, но перед использованием маршрутов.

Присоединение промежуточного программного обеспечения и прослушивание:

app = express();
app.use(bodyParser.json());
var router = require('./router.js');
app.use(router);

httpServer = http.createServer(app);
httpServer.listen(webServerConfig.port)
.on('listening', () => {
console.log(`Web server listening on localhost:${webServerConfig.port}`);

Соответствующая частьмаршрутизатора:

router.route('/api/v1/customer')
  .post(customers.post);

Функция сообщения, вызываемая маршрутизатором:

function post(req, res, next) {
  try {
    var body = req.body;
    console.log('post: ', body);
    res.status(200).json(req.body);
    next();
  } catch (err) {
    res.status(500);
    next(err);
  }
}

Тело первого ответа (или ожидание 5 секунд между ответами):

{}

Тело последующих ответов, сделанных в быстрой последовательности (это также тело, которое я отправляю в почтовом запросе):

{
    "phone": "8124713403",
    "smsOptStatus": "out",
    "addressLine1": "100 Regolith Lane",
    "birthDay": 2,
    "firstName": "Bill",
    "emailAddress": "test3sldkfjslkdfa@live.com",
    "lastName": "Shepherd",
    "emailOptStatus": "in",
    "city": "Mooncity",
    "loyaltyStatus": "member",
    "birthMonth": 7,
    "state": "CA"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...