2017-09-09 1 views
4

약속을 사용하여 mysql 데이터를 반환하려고하는데 작동하지만, 의도적으로 mysql에서 오류를 만들려고했지만 다음으로이 오류가 발생합니다.약속 거부가 mysql 오류로 작동하지 않습니다

(node:28464) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Users not found 
(node:28464) DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code. 

나는 어디에서나 검사했지만 .catch를 사용하지만 이상하게도 잡기를 사용하고 있지만 문제를 파악할 수는 없다고 말했습니다. 일반적으로 올바른 방법을 모른 채 계속 진행하는 대신이 문제를 해결하는 방법을 알고 싶습니다. MySQL의 테이블이 없습니다 usersuser라고 이후 모델을 호출하고 어떻게 여기

getAllUser = 
    new Promise((resolve, reject) => { 
     db.query('SELECT * from users', function (error, results, fields) { 
      if (error){ 
       return reject('Users not found'); 
      }else{ 
       resolve(results[0]); 
      } 
     }); 
    }); 
module.exports = { 
    getAllUser 
}; 

그리고이

이이 모델은 .. 상단에있는 모델은 오류를 반환해야합니다.

router.get('/db',(req,res,next)=>{ 
    getAllUser.then((result)=>{ 
     console.log(result); 
    }).catch((e) => { 
     console.log(e); 
    }); 
}); 
+0

시도가 대신 그 후, 내가 한 –

+0

@RobertRowntree가 작동하지 않았다 "복귀 거부" "거부" @RobertRowntree 그 이상한, 나는 여러 가지 방법을 시도했지만 여전히 같은 오류. – FaF

+0

반환을 시도했다. – FaF

답변

1

모델 파일에 오류가 있습니다. promise를 반환하는 함수는 Promise 대신 만들어야합니다.

근무 코드 :

모델 :

getAllUser =() => new Promise((resolve, reject) => { 
    db.query('SELECT * from users', function (error, results, fields) { 
     if (error){ 
      return reject('Users not found'); 
     }else{ 
      resolve(results[0]); 
     } 
    }); 
}); 
module.exports = { 
    getAllUser 
}; 

라우터 :

router.get('/db',(req,res,next)=>{ 
    getAllUser.then((result)=>{ 
     console.log(result); 
    }).catch((e) => { 
     console.log(e); 
    }); 
}); 
+0

감사합니다 !!!!! 나는 오랫동안 그것을 알아낼 수 없었다, 고마워! Dint는 함수를 통해 약속을 반환하는 것에 대해 알고 있습니다. 다시 한번 감사드립니다! – FaF

관련 문제