node.js - 等于 Koa 中的 req.on ('data' )

标签 node.js koa

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/

相关文章:

javascript - 多个 http.get 请求的套接字挂起错误

javascript - 如何更改 Koa 的非定义路由的 http 状态码

node.js - 需要一些帮助来理解 Node.js 的行为。为什么 koa 服务器会同步响应来自同一浏览器的两个同时请求?

mysql - KOA - mysql 错误的依赖项

javascript - 将redis hget值存储到nodejs中的变量中

node.js - 如何在 AWS API 网关中调试 "Missing Authentication Token"?

javascript - 当我通过 React 应用程序发出请求时,我的网络服务器发送 404,但当我直接通过 chrome 或 postman 访问它时工作正常

node.js - 如何在 Coffeescript 1.9 上强制使用生成器?

mysql - Node.js 无法对 MySQL 8.0 进行身份验证

node.js - Nativescript 构建失败并出现错误 "Manifest merger failed "