Nest.js 再探 解析HTTP请求

body-parser

包body-parser属于express,原型如下:

[Function] {
  json: [Getter], // application/json parser
  raw: [Getter], // application/octet-stream parser
  text: [Getter], // text/plain parser
  urlencoded: [Getter] // application/x-www-form-urlencoded parser
}

body-parser导出一个CommonJS模块,使用以下方式取得中间件并应用到express:

import bodyParser from 'body-parser';
app.use(bodyParset.json()); // apply application/json parser

import { json } from 'body-parser';
app.use(json());

解析之后,req.body可用。

打印HTTP请求

import { _console } from '@develon/js/lib/node';

_console.hook();
/**
 * 记录HTTP请求
 * @param req 
 * @param res 
 * @param next 
 */
export default function (req, res, next) {
    let members = [
        `HTTP请求:`, req.method, req.url, req.httpVersion,
        'Headers :>>', req.headers,
    ];
    if (req.method?.match(/^POST$/i)) {
        members.push('Body :>>', req.body);
    }
    console.log(...members);
    next();
};

END

原文地址:https://www.cnblogs.com/develon/p/13926053.html