1

我正在尝试使用在 node.js 版本 0.8.2 上运行的护照来保护我的 API 端点。我拥有的控制器功能如下所示:

exports.create = function(req, res) {
    console.log('Request readable? ' + req.readable);

    ... stream blob in req to create blob ...
};

当没有中间件来验证传入请求并且“请求可读?真”被打印到控制台时,这非常有用。

当我引入中间件来验证传入请求时,请求在我的控制器中不再可读。

我究竟做错了什么?

4

1 回答 1

0

在这种情况下发生的事情是,我正在调用以异步方式从数据库中获取 accessToken,并且在此间隙中,当流不可读时:

// req.readable == true here

auth(req, res, function(err) {
    // req.readable == false here

在这种情况下你需要做的是暂停和恢复请求流:

// req.readable == true here

req.pause();
auth(req, res, function(err) {
    req.resume();
    // req.readable == true here
于 2013-05-03T15:01:57.780 回答