728x90
반응형

이번에 샘플 앱을 프론트 / 백을 같이 개발하면서 Node js 에 점점 흥미를 느끼고있다.

 

하지만 시연용이긴 하지만 처음 실사용자수들이 있는 프로젝트라서 백엔드에서 처음 보는 에러들이 많이 발생했다.

 

  code: 'PROTOCOL_ENQUEUE_AFTER_FATAL_ERROR',
  fatal: false

 

등이 그 것이다.

 

mysql 을 사용하는데, 일정시간동안 요청이 없으면 db 커넥션을 끊는다는 것을 이번 디버깅을 통해 알게됐다.

 

미봉책으로 

 

// {"code":"PROTOCOL_ENQUEUE_AFTER_FATAL_ERROR","fatal":false} 해당 에러을 발생으로
// mysql에 연결이 connection 문제가 발생하여 미봉책으로 5초에 한번씩 connection 유지를 위해
// query 문을 보낸다. 이는 리소스를 많이 잡아먹기때문에 추후 반드시 수정해야하는 부분
setInterval(function () {
try {
connection.query("SELECT * FROM 테이블 ");
logging("db connection !!");
} catch (error) {
logging("db connection failed !!");
}
}, 5000);

이런식으로 5초에 한번 쿼리문을 날려 해당 에러를 수정했고, 팔로우업 중이다.

 

물론 이방식은 리소스를 많이 잡아 먹기에 추후 실서비스가 될때 반드시 수정돼야 하는 부분이라 주석처리 해놓았다.

728x90
반응형

'Node js' 카테고리의 다른 글

[ Node js ] db 정보 보안처리  (0) 2023.06.20
[ Node js ] PROTOCOL_ENQUEUE_AFTER_QUIT  (0) 2023.06.09
728x90
반응형

요즘 샘플앱을 프론트 / 백을 같이 개발하면서 노드에 조금씩 흥미가 생기고있다.

 

다행히 RN으로 하던 약간의 상식(?) 지식들이 도움이 된다.

 

RN에서도 중요정보인 keystore 값이나 base url등은 json파일이나 env파일로 관리했는데,

 

노드를 통해 db connection을 할때도 같은 방식으로 구현했다.

 

const conn = config.get("Customer.dbConfig");
var connection = mysql.createConnection(conn); // DB 커넥션 생성

db관련된 로직을 넣어놓은 db.js 파일에서 해당코드로 가져오고, 

 

default.json은

 

{
"Customer": {
"dbConfig": {
"host": "비밀",
"port": "입니다",
"user": "비밀",
"password": "이라구요!",
"database": "하하"
},
"credit": {
"initialDays": 30
}
}
}

형태로 세팅해줬다.

 

백엔드 개발자분들에게 기초적인 부분들을 물어보며 작업하는데, 친절하게들 가르쳐주셔서 감사할 따름이다.

728x90
반응형

'Node js' 카테고리의 다른 글

[ Node js ] PROTOCOL_ENQUEUE_AFTER_FATAL_ERROR  (0) 2023.06.21
[ Node js ] PROTOCOL_ENQUEUE_AFTER_QUIT  (0) 2023.06.09
728x90
반응형

node 로 mysql을 사용하여 db connection을 한 후, api를 받다보니

 

PROTOCOL_ENQUEUE_AFTER_QUIT

 

해당 에러가 나왔다.

 

함수마다 실행되고 db.end()를 사용해주었는데, 이것이 문제가 되었다.

삭제하니 정상작동

728x90
반응형

'Node js' 카테고리의 다른 글

[ Node js ] PROTOCOL_ENQUEUE_AFTER_FATAL_ERROR  (0) 2023.06.21
[ Node js ] db 정보 보안처리  (0) 2023.06.20

+ Recent posts