小编Ema*_*dio的帖子

如何在bodyparser之前访问请求的原始主体?

我正在编写一个自定义中间件,它为每个请求生成加密签名(它与AWS API v4使用的身份验证机制非常相似).为了正确生成此签名,我必须获取HTTP请求的整个原始主体.

我也在使用BodyParser,它是在我的自定义中间件之后注册的.

我的自定义中间件可以表示如下:

// libs/simplifiedSignatureCheckerMiddleware.js

module.exports = function (req, res, next){

// simple and fast hashing stuff

var payload = '';
req.on('data', function(chunk) { payload += chunk }, null);
req.on('end', function(){

    // hmac stuff

    console.log(payload);

    var ok = true; // ...

    if(ok)
        next();
    else
        next("Bad")
});

}
Run Code Online (Sandbox Code Playgroud)

这就是我在服务器上使用它的方式.

// simpleServer.js

// BASE SETUP
// =============================================================================
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var jsonStream = require('express-jsonstream');
var …
Run Code Online (Sandbox Code Playgroud)

node.js express

5
推荐指数
1
解决办法
5402
查看次数

标签 统计

express ×1

node.js ×1