3 回答
TA贡献1825条经验 获得超4个赞
使用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的新手(从昨天开始,从字面上看!),所以我想听听对此解决方案的评论
TA贡献2041条经验 获得超4个赞
请谨慎处理其他答案,因为如果您还希望支持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();
});
});
- 3 回答
- 0 关注
- 1084 浏览
添加回答
举报