쑥로그

Nodejs handshake error 본문

프로그래밍/Nodejs

Nodejs handshake error

SOOOOOK 2019. 5. 11. 19:00

간단한 CRUD API 를 만들어보다가 직면한 에러.

 

자바같은 경우에는 transactionManager가 커넥션, 트랜잭션을 관리해주는데 

 

일단 그부분은 뒤로 하고 직접 커넥션을 맺고 끊는 방법으로 테스트만 하려고 하다가 에러를 만났다.

 

첫 한번은 성공하지만 연달아서 하려고 하면 문제가 생기는 것이다.

 

처음 작성한 플로우는 커넥션 오픈 -> 쿼리 -> 클로즈 였다.

 

클로즈하면서 문제가 생기는 것 같은데 관련 에러를 찾아보니 트랜잭션으로 문제를 해결했다.

 

관련 에러 : 

 

Cannot enqueue Handshake after invoking quit.events.js:170
      throw er; // Unhandled 'error' event
      ^

Error: Cannot enqueue Handshake after invoking quit.
   ...

 

이하 생략.

 

 

해결 방법:

 

connection.connection.beginTransaction(function(err) {
...
	connection.connection.query('SELECT * FROM board', function(err, rows, fields) {
...
		connection.connection.commit(function (err) {
...
			if (err) {

				connection.connection.rollback(function () {

					throw err;

				});
			}// if err

			res.send(rows);

		});

	});

});

간단히 하면 위와 같다.

 

커넥션을 직접 열고 닫지 말고 트랜잭션 관리하에 커밋하도록 만들어두는 것.