使用中间件后,req不可读

时间:2013-04-17 03:39:38

标签: node.js express passport.js

我正在尝试使用node.js版本0.8.2上运行的护照来保护我的API端点。控制器功能看起来像这样:

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

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

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

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

我做错了什么?

1 个答案:

答案 0 :(得分: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