Koa.js 中以下代码的等价物是什么:
req.on('data', function(data) {
console.log(data);
}
最佳答案
您仍然可以访问 node.js 请求,但您不应该这样做!
var req = this.request.req;
使用co-body
,您可以解析JSON和表单编码请求。如果您想处理其他主体类型,则必须编写自己的中间件。
这是一个处理 XML 请求的虚拟中间件:
var raw = require('raw-body');
var parseXML = require('xml2js').parseString;
function xml(req, opts) {
req = req.req || req;
// Parse Content-Type
var type = (req.headers['content-type'] || '').split(';')[0];
if (type === 'application/xml') {
return function(done) {
raw(req, opts, function(err, str){
if (err) return done(err);
try {
// Parse XML request
parseXML(str, function(err, result) {
if (err) throw err;
done(null, result);
});
} catch (err) {
err.status = 400;
err.body = str;
done(err);
}
});
};
} else {
// Invalid request
return function(done) {
var err = new Error('Unsupported or missing content-type');
err.status = 415;
done(err);
};
}
}
用法:
var body = yield xml(this);
关于node.js - 等于 Koa 中的 req.on ('data' ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22014753/