【问题标题】:How would you access form data without using bodyParser?在不使用 bodyParser 的情况下如何访问表单数据?
【发布时间】:2015-07-02 02:29:46
【问题描述】:
我总是看到bodyParser 被用来让您访问已发布的表单内容。通过在req.body 中访问它。但是,如果您不想使用 bodyParser,您将如何访问这些数据?
相关/类似问题 - bodyParser 如何为您提供req.body 中的数据?
编辑:我问的是这些东西在低层次上是如何工作的。这个possible duplicate 似乎通过推荐某些中间件并描述如何使用它们来解决这个问题。
【问题讨论】:
标签:
javascript
node.js
express
【解决方案1】:
bodyParser 是一个将数据流解析为 json 的中间件。
我看不出不使用 bodyParser 的理由(如果您不想处理多部分主体),但如果您愿意,您可以自己解析流。它将类似于下面的中间件:
app.use(function( req, res, next ) {
var data = '';
req.on( 'data', function( chunk ) {
data += chunk;
});
req.on( 'end', function() {
req.rawBody = data;
console.log( 'on end: ', data )
if ( data && data.indexOf( '{' ) > -1 ) {
req.body = JSON.parse( data );
}
next();
});
});
如果要解析多部分正文,可以使用以下模块之一: