猿问
Node.js-使用Express获取原始请求正文
当我使用Express时,我的代码是:
app.use(express.bodyParser());
我将如何获得原始请求正文?
尚方宝剑之说
浏览 1091
回答 3
3回答
凤凰求蛊
使用bodyParser中的verify回调,我得到了一个与bodyParser配合良好的解决方案。在这段代码中,我正在使用它来获取内容的sha1并获取原始内容。app.use(bodyParser.json({ verify: function(req, res, buf, encoding) { // sha1 content var hash = crypto.createHash('sha1'); hash.update(buf); req.hasha = hash.digest('hex'); console.log("hash", req.hasha); // get rawBody req.rawBody = buf.toString(); console.log("rawBody", req.rawBody); }}));我是Node.js和express.js的新手(从昨天开始,从字面上看!),所以我想听听对此解决方案的评论
0
0
0
缥缈止盈
请谨慎处理其他答案,因为如果您还希望支持json,urlencoded等,它们将无法在bodyParser上正常播放。要使其与bodyParser一起使用,应将处理程序设置为仅在Content-Type标头上注册就像bodyParser本身一样关心。为了得到一个请求的原始主体内容Content-Type: "text/plain"到req.rawBody你可以这样做:app.use(function(req, res, next) { var contentType = req.headers['content-type'] || '' , mime = contentType.split(';')[0]; if (mime != 'text/plain') { return next(); } var data = ''; req.setEncoding('utf8'); req.on('data', function(chunk) { data += chunk; }); req.on('end', function() { req.rawBody = data; next(); });});
0
0
0
随时随地看视频
慕课网APP
相关分类
Node.js
我要回答