sequelize로 findAll 해서 얻은 객체는 순수한 DB 자료구조가 아니다

여러 함수화 여러 상태가 복합적으로 얽혀있다.

이걸 다 쓰냐고 말한다면 거의 그렇지 않다

1. sequelize 객체 - 옵션 없이 그냥 find로 나온 객체

2. find option에서  raw: true를 주었을 경우

3. get() 메서드로 얻는 방법

4. toJSON()으로 얻는 법

5. dataValues로 얻는 법

 

뭔가 통일을 해야 할 것 같은데 가장 범용적인 방법이 뭔지 혼란 스럽다.

 

시퀄라이즈에서는 outer join 한 테이블 컬럼을 join된 결과에서 where 구문으로 불러오려고 할 때

그냥 join한 테이블 이름 또는 alias로 찾을 수가 없다.

이 경우 '$nested.column$' 문법으로 볼러 올 수 있다.


eg.) where: { $UserDetail.address$: { [Op.like]: '%영등포%' } }


어쩌다가 이렇게 불편하게 됐는지 언제한번 들여다 보아야 겠다.




const TRANSACTION_NAMESPACE = "sequelize-transaction";

const cls = require("continuation-local-storage"),
    namespace = cls.createNamespace(TRANSACTION_NAMESPACE);

SequelizeOrigin.useCLS(namespace);

export const ns = namespace;

export const sequelize = new Sequelize({
    host,
    database,
    dialect: "mysql",
    username,
    password,
    modelPaths: [
        path.resolve(__dirname, "..", "model/**/*.repository{.ts,.js}"),
    ],
    logging: !profile.isProduction && false,
    modelMatch: (filename: string, member: string) => {
        if (filename === member) {
            return true;
        }

        const removeRepository = filename.split(".")[0];
        return removeRepository === member;
    },
});

export const transactionManager: TransactionManager = {
    transaction<T>(fn, options = {propagation: "REQUIRED"}) {
        if (options.propagation !== "REQUIRED") {
            return sequelize.transaction(() => fn());
        }

        const tx = cls.getNamespace(TRANSACTION_NAMESPACE).get("transaction");
        return tx ? fn() : sequelize.transaction(() => fn());
    },
};


nodeJs 구조 관련 링크


https://blog.risingstack.com/node-hero-node-js-project-structure-tutorial/

'nodeJS' 카테고리의 다른 글

axios vs fetch #1  (0) 2019.11.17
npm 설치 가능한 버전 보기  (0) 2019.08.16
Conflicts in NextJs and Routing-Controllers  (0) 2019.07.30
또 다른 circular dependency 처리  (0) 2019.04.09
npm --save --save-dev  (0) 2018.04.14

친절한 설명

http://ohyecloudy.com/ddiary/2016/09/04/til-npm-install-save-or-save-dev/

'nodeJS' 카테고리의 다른 글

axios vs fetch #1  (0) 2019.11.17
npm 설치 가능한 버전 보기  (0) 2019.08.16
Conflicts in NextJs and Routing-Controllers  (0) 2019.07.30
또 다른 circular dependency 처리  (0) 2019.04.09
nodeJs 구조  (0) 2018.04.18

+ Recent posts