Fall in IT.

Nodejs Sequelize raw query 사용법 본문

프로그래밍언어/Node.js

Nodejs Sequelize raw query 사용법

D.Y 2019. 8. 13. 13:18

 

안녕하세요.

 

ORM을 사용하게 되면 raw query를 전혀 사용하지 않을 수 있지만, 간혹 사용해야 하는 상황이 발생하기도 합니다.

오늘은 Nodejs의 ORM인 Sequelize에서 raw query 사용하는 방법에 대해서 알아보도록 하겠습니다.

 

Dynamic SQL을 사용한 나쁜 예

let query = `
	SELECT * FROM user
		LEFT JOIN team ON user.team_id = team.id
		WHERE user.id = ${userId}
`;
let user: User = await sequelize.query(
	query, 
    {
    	replacements: {personId: person.id}, 
	    type: Sequelize.QueryTypes.SELECT, 
        raw: true
    });

 

Replacements를 사용한 좋은 예

let query = `
	SELECT * FROM user
		LEFT JOIN team ON user.team_id = team.id
		WHERE user.id = :userId
`;
let user: User = await sequelize.query(
	query, 
    {
    	replacements: {personId: person.id}, 
        type: Sequelize.QueryTypes.SELECT, 
        raw: true
    });

 

Replacements 외에도 Sequelize에서는 Bind Parameter를 사용하는 방법도 제공하고 있습니다.

아래 주소를 참고해주세요.

 

https://sequelize.org/master/manual/raw-queries.html#replacements

 

Manual | Sequelize

Raw queries As there are often use cases in which it is just easier to execute raw / already prepared SQL queries, you can use the function sequelize.query. By default the function will return two arguments - a results array, and an object containing metad

sequelize.org

 

모두 즐거운 코딩하세요~

 

 

Comments