[Sequelize.js] Postgresql에서 int8(bigint)가 문자열로 반환되는 경우

[원본 링크]

이건 사실 시퀄라이즈만 그런건 아니고 노드 Postgres 모듈 자체의 문제다.
환경에 따라 다른 듯 하지만. 디비에서 int8 타입의 값을 읽어올 때 무조건 문자열로 가져오는 경우가 있다.

예를 들어보겠다.

이러면 실제 DB 상에서 code_no 컬럼은 정수라서 정수로 뽑혀야 하는데


이런식으로 문자열로 던져지는 것이다.

이건 당연히 수많은 부작용을 야기할 수 있다.
문자열과 숫자는 동작방식이 다르므로...

이걸 해결하기 위해서는 일단, postgres 모듈인 pg 모듈을 깔아줘야 한다.
있으면 그냥 쓰면 되고.

그리고 DB 설정 부분에서 아래와 같이 설정해주면 된다.

//숫자가 문자열로 반환되는 경우 방지
require("pg").defaults.parseInt8 = true;

그럼 이렇게,

기대한대로 잘 동작할 것이다.