반응형
MySQL, Express, Angular, NodeJS 애플리케이션이 있고 때때로 로그인 할 때 노드 콘솔에 다음 오류가 발생합니다.
TypeError : 정의되지 않은 'query'속성을 읽을 수 없습니다.
내 passport.local.js
파일에서 오류가 발생합니다. 다음 줄은 다음과 같습니다.
connection.query('SELECT * FROM users WHERE username LIKE ?', [username], function (err, user) {
이것은 여권 기능입니다
passport.use(new LocalStrategy(
function(username, password, done) {
console.log('app.js');
pool.getConnection(function(err, connection) {
console.log('err: ' + err);
console.log(connection);
connection.query('SELECT * FROM users WHERE username LIKE ?', [username], function (err, user) {
if (err) throw err;
for (var i = user.length - 1; i >= 0; i--) {
var current = user[i];
}
if(current){
if(bcrypt.compareSync(password, current.password)){
return done(null, user);
} else {
return done(null, false);
}
} else {
console.log('no user');
return done(null, false);
}
});
connection.release();
});
}
));
내 파일 상단에 내 풀
이 필요합니다.
var pool = require('../../config/connection');
오류가 발생하면 :
console.log(connection);
가져옵니다 :
찾으시는 주소가 없습니다
또한 오류를 기록합니다.
console.log('err: ' + err);
쇼 :
err: Error: ER_USER_LIMIT_REACHED: User 'bfe4a8980ede74' has exceeded the 'max_user_connections' resource (current value: 10)
해결 방법
표시되는 오류는 문제를 나타내는 것입니다. MySQL 서버는 사용자 당 10 개의 연결 만 허용하며 해당 제한에 도달했습니다.
그 외에도 코드에 또 다른 문제가 있습니다. 쿼리가 완료되기 전에 연결이 해제되어 예기치 않은 동작이 발생할 수 있습니다. connection.release ()
에 대한 호출을 콜백 내부로 이동합니다.
pool.getConnection(function(err, connection) {
...
connection.query('SELECT * FROM users WHERE username LIKE ?', [username], function (err, user) {
connection.release();
...
});
});
마지막으로 비동기 코드로 작업하는 경우 오류를 발생시키지 말고 콜백에 전달하십시오 (그리고 pool.getConnection 에서 오류를 처리하지 않기 때문에 실제로 처리해야합니다. 코드> 이제 로깅 외에) :
pool.getConnection(function(err, connection) {
if (err) return done(err);
...
});
참조 페이지 https://stackoverflow.com/questions/39150633
반응형
'MySql' 카테고리의 다른 글
MySQL com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException : autocommit = true 일 때 롤백을 호출 할 수 없음 (0) | 2020.11.02 |
---|---|
MySQL CLAUSE의 mysql NULL 값 (0) | 2020.11.02 |
MySQL 이벤트 스케줄러 상태 확인 방법 mysql (0) | 2020.11.02 |
MySQL 테이블에 값을 삽입 할 때이 MySQL 쿼리에서 "오류 1136"이 발생하는 이유 (0) | 2020.11.02 |
MySQL 최대 절전 모드 이름 지정 전략 변경 테이블 이름 (0) | 2020.11.02 |
댓글