我有一个使用Node.js构建并表达的小型api。
我正在尝试创建一个记录器,我需要记录请求正文和响应正文。
app.use((req, res) => {
console.log(req);
res.on("finish", () => {
console.log(res);
});
});
但是,我无法在req或res对象中找到该主体。请告诉我我怎么能得到它们。谢谢。
最佳答案
对于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 });
关于Node.js + Express-如何记录请求正文和响应正文,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52310461/