2013-04-17 2 views
1

node.js 버전 0.8.2에서 실행중인 패스포트로 API 엔드 포인트를 보호하려고합니다. 내가 가진 컨트롤러의 기능은 다음과 같은 : 콘솔에 인쇄되어 들어오는 요청 및 "? 읽기 요청 true"로 인증 할 미들웨어가 없을 때이 위대한 작품을미들웨어 사용 후 req를 읽을 수 없습니다.

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

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

.

들어오는 요청을 인증하기 위해 미들웨어를 소개 할 때 req를 더 이상 내 컨트롤러에서 읽을 수 없습니다.

내가 뭘 잘못하고 있니?

+4

미들웨어 란 무엇입니까? – loganfsmyth

+0

미안 - 패스포트 - http-bearer 인증 체크 – outside2344

+0

당신은 'bodyParser' 미들웨어도 사용하고 있습니까? 그러면 매개 변수 (GET의 경우 쿼리 문자열 또는 POST의 경우 body)를 전달하고'readable '를 false로 설정하면 요청을 읽습니다. – robertklep

답변

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 
+0

저는 비슷한 문제가있었습니다. 나를위한 솔루션은 노드를 0.10 이상으로 업그레이드하는 것이 었습니다. – Eric

관련 문제