2016-09-10 3 views
-1

저는 nodeJs에 익숙하며 실제로 그것에 대한 자습서를 따르고 있습니다. 튜토리얼에서 는 코드가 사용되었습니다 Node.js 사용자 인증

exports.verifyOrdinaryUser = function (req, res, next) { 
    // check header or url parameters or post parameters for token 
    var token = req.body.token || req.query.token || req.headers['x-access-token']; 

    // decode token 
    if (token) { 
     // verifies secret and checks exp 
     jwt.verify(token, config.secretKey, function (err, decoded) { 
      if (err) { 
       var err = new Error('You are not authenticated!'); 
       err.status = 401; 
       return next(err); 
      } else { 
       // if everything is good, save to request for use in other routes 
       req.decoded = decoded; 
       next(); 
      } 
     }); 
    } else { 
     // if there is no token 
     // return an error 
     var err = new Error('No token provided!'); 
     err.status = 403; 
     return next(err); 
    } 
}; 

다른 파일에

이, 함수가 소위되었다 :

/*****........****/ 
.post(verify.verifyOrdinaryUser, function(req, res, next){ 
    /******.......*****/ 

모든 인 verify.js에서 다음과 같은 기능이 기록 된 파일 문제없이 잘 작동합니다. 1 내가 왜 함수 verify.verifyOrdinaryUser 그렇게 호출되지 않습니다 이해하지 않는다 : 자신의 매개 변수를

verify.verifyOrdinaryUser(req, res, next) 

(우리가 그의 매개 변수없이 함수를 호출한다는 것이 어떻게 가능

을 다음,.? 같은 파일에

exports.verifyAdmin = function(req, res, next){ 
    if(req.decoded._doc.admin == false){ 
     var err = new Error('You cannot access to this ressource!'); 
     err.status = 401; 
     return next(err); 
    } 
    else { 
     next(); 
    } 
}; 

, 사용자가 관리자인지, 내가 verifyOrdinaryUser 기능 후이 함수를 호출해야하는 경우, 내 문제는 내가 몰라 확인 : 난 함수를 작성했습니다 어떻게이 전화를 할 수 있니? 매개 변수 유무에 관계없이 감사합니다.

답변

1

1 나는 함수 verify.verifyOrdinaryUser이 소위하지 이유를 이해하지 않습니다 verify.verifyOrdinaryUser (REQ, 다음 고해상도) 간단한 측면에서

을, 그건 Express이 치료를 필요하기 때문에 지정한 매개 변수를 여기에 지정하는 대신 지정한 매개 변수를 전송하는 것입니다.

verify.verifyOrdinaryUser 함수는 3 개의 매개 변수 req, res, next을 요청하고이 매개 변수를 수신하지 않습니다. 파라미터 값은 undefined입니다.

내 문제는 내가 어떻게 또는 매개 변수없이이 함수를 호출 할 수 있는지 알 수 없습니다. 당신은해야,

그냥

/*****........****/ 
.post(verify.verifyOrdinaryUser, verify.verifyAdmin, function(req, res, next){ 
    /******.......*****/ 

처럼 전화 기능 코드에 당신은 당신이 당신에게 세드릭에 어떤 의미를 부여

exports.verifyAdmin = function(req, res){ 
    if(req.decoded._doc.admin == false){ 
    ... 

희망을 필요로하는 매개 변수에 요청할 수 있습니다 노드 JS Middlewares에 대한 구글과 노드 JS와 익스프레스에 기반한 간단한 튜토리얼.