Node.js + Express - Как зарегистрировать тело запроса и тело ответа - PullRequest
0 голосов
/ 13 сентября 2018

У меня есть маленький API, который я создал с помощью Node.js и Express. Я пытаюсь создать регистратор, и мне нужно зарегистрировать тело запроса И тело ответа.

app.use((req, res) => {

    console.log(req);            

    res.on("finish", () => {

        console.log(res);

    });

});

"экспресс": "^ 4.16.3",

Однако я не могу найти тело в объекте req или res. Пожалуйста, скажите мне, как я могу получить их. спасибо.

Ответы [ 2 ]

0 голосов
/ 13 сентября 2018

Для res.body попробуйте следующий фрагмент:

const endMiddleware = (req, res, next) => {
  const defaultWrite = res.write;
  const defaultEnd = res.end;
  const chunks = [];

  res.write = (...restArgs) => {
    chunks.push(new Buffer(restArgs[0]));
    defaultWrite.apply(res, restArgs);
  };

  res.end = (...restArgs) => {
    if (restArgs[0]) {
      chunks.push(new Buffer(restArgs[0]));
    }
    const body = Buffer.concat(chunks).toString('utf8');

    console.log(body);

    defaultEnd.apply(res, restArgs);
  };

  next();
};

app.use(endMiddleware)

// test
// HTTP GET /
res.status(200).send({ isAlive: true });
0 голосов
/ 13 сентября 2018

Вам нужен body-parser , который создаст для вас объект body в вашем запросе.
Для этого npm install body-parser

var bodyParser = require('body-parser')//add this

app.use(bodyParser())//add this before any route or before using req.body

app.use((req, res) => {
  console.log(req.body); // this is what you want           

  res.on("finish", () => {

    console.log(res);

  });

});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...