반환 문자열 유형 열 값을 버퍼 배열(MariaDB)로 후속 처리
저는 sufficialize(http://docs.sequelizejs.com/) 를 제 node.js 프로젝트에서 ORM 라이브러리로 사용하고 있습니다.
DBMS는 MariaDB(10.1.13-MariaDB - MariaDB Server)입니다.
문제는 모든 VARCHAR 및 CHAR 유형 열 값이 버퍼 배열로 반환된다는 것입니다.
테이블 구조는 다음과 같습니다.
모델 파일은 다음과 같습니다.
제가 뭘 잘못했는지 모르겠어요.
이것이 제가 기대하는 것입니다.
"user_id" : "tftfff"
"email_address" : "asdf@asdf.com "
...
이 문제는 제가 직접 해결했습니다.왜 이런 일이 일어났는지 모르겠어요.MySQL 데이터베이스에 연결하면 String이 String으로 반환됩니다.괜찮아 보입니다.그러나 Maria Database에 연결할 때만 String이 Int Array(ints는 ASCII 문자 코드를 나타냄)로 검색되었습니다.
며칠 동안 고생을 했지만 요점을 알 수가 없었어요.그래서 저는 속편의 모듈 파일 중 하나를 편집하기로 결정했습니다.
"node_modules/sequelize/lib/instance.js"입니다.
"Instance.prototype" 함수의 마지막 부분.set = function(키, 값, 옵션...)", 코드를 몇 줄 추가했습니다.
if (!options.raw && ((!Utils.isPrimitive(value) && value !== null) || value !== originalValue)) {
this._previousDataValues[key] = originalValue;
this.changed(key, true);
}
// HACK : This part for byte array to string of MariaDB
if (Buffer.isBuffer(value)) {
value = value.toString('utf8');
}
this.dataValues[key] = value;
이것이 좋은 해결책인지는 잘 모르겠지만, 저의 경우에는 지금까지 문제가 발생하지 않았습니다.
언급URL : https://stackoverflow.com/questions/45707605/sequelize-return-string-type-column-value-as-buffer-array-mariadb
'source' 카테고리의 다른 글
부트스트랩 3 Chevron 아이콘으로 표시 상태 축소 (0) | 2023.08.05 |
---|---|
Android:문자열을 날짜로 변환하려면 어떻게 해야 합니까? (0) | 2023.08.05 |
선택기 "my-app"이(가) 어떤 요소와도 일치하지 않습니다. (0) | 2023.07.31 |
10보다 작음 숫자에 0을 더합니다. (0) | 2023.07.31 |
MySQL 데이터베이스의 비어 있지 않은 테이블 목록 (0) | 2023.07.31 |