2016-07-12 4 views
0

처리() 오류, 특히이 페이지 https://docs.strongloop.com/display/public/LB/Extend+your+API ID로 인스턴스를 발견 예제 코드가 찾을 PersistedModel, 나는 그것을 존재하지 않는 인스턴스를 처리하기 위해 약간 수정루프백 내가 루프백 프레임 워크 자습서를 다음있어

그것은 모두 내가 잘못된 ID를 입력 할 때, 대신 완전히 생략 년대 err 핸들러를 호출하지만, 기존의 ID와 함께 호출 else 문이라고하며 다음과 같은 콘솔 오류

와 전체 응용 프로그램이 충돌 할 때 잘 작동
Coffeeshop.getName=function(id, cb) 
{ 
    Coffeeshop.findById(id, function(err, shop){ 
     if(err) 
     { 
      console.log(err); 
      cb(err); 
     } 
     else     
      cb(null, 'Name of the coffee shop is '+shop.name); 
    }); 
}; 

,683,210

내가 Node.js를 새로운 그리고 난 내가 여기서 뭔가를보고 싶어하지만 오류가 상위 수준으로 던져지는 것이 아니라 콜백 함수에 전달되어서는 안 확실 해요?

이 나는 ​​커넥터를 몽고로 전환하고 비슷한 문제를 가지고, MySQL의 백엔드 특정 될 것 같지 않습니다. 이런 오류를 올바르게 처리하는 방법은 무엇입니까?

답변

1

또한 shop 매개 변수를 확인해야합니다. 전체 검사는 다음과 같습니다.

Coffeeshop.getName=function(id, cb) 
{ 
    Coffeeshop.findById(id, function(err, shop){ 
     if(err) 
     { 
      console.log(err); 
      cb(err); 
     } 
     else 
     { 
      if(shop) { 
      cb(null, 'Name of the coffee shop is '+shop.name); 
      } else { 
      var error = new Error(); 
      error.message = 'Coffee Shop is not found.'; 
      error.statusCode = 404; 
      cb(error); 
      } 
     }   

    }); 
}; 

다음은 루프백이 내장 모델에 사용하는 패턴입니다. 코드는 node_modules/loopback/common/models/user.js 파일에서 약 281 행 번호입니다.

User.logout = function(tokenId, fn) { 
fn = fn || utils.createPromiseCallback(); 
this.relations.accessTokens.modelTo.findById(tokenId, function(err, accessToken) { 
    if (err) { 
    fn(err); 
    } else if (accessToken) { 
    accessToken.destroy(fn); 
    } else { 
    fn(new Error('could not find accessToken')); 
    } 
}); 
return fn.promise; 
+0

덕분에, 그 접근 방식은했다. mysql 예외로 혼란스러워했다, 나는 그것을 내 콜백에'err' 매개 변수로 전달할 것으로 예상했다. 이 매개 변수가 언제 사용될 지 알고 있습니다. 이 같은 쿼리 오류 또는 somehing있을 것입니다? –

+0

서버 연결이 끊어지면이 오류가 발생합니다. '에 대한 findById'하지만'create', 검증 오류와 같은 및 방법에 대한 몰라'User.login'은 로그인 오류이를 통해보고됩니다 실패했습니다. –