node js로 api 서버를 구축하는 중에 orm을 쓰지 않고 구현을 하는 도중에 고민이 생겼다.
db connection을 맺는 작업은 cost가 높은 작업인데 api route마다 db 모듈을 import를 시키면 계속 connection 맺으면서 작업할 수 밖에 없는 것인가....
검색을 해보니, nodejs에서의 모듈을 몇 번이든 import를 하든 같은 obj를 반환한다고 한다. 즉
db connection에 관한 class를 만들게 아니라 connection을 아예 맺어버린 다음 connection을 export를 시키면 되는것이었다! 그럼 한번에 connection 이후에 이 모듈을 import한 어디서든 이 connection을 이용해 쿼리를 보낼 수 있을 것이다.
https://stackoverflow.com/questions/30545749/how-to-provide-a-mysql-database-connection-in-single-file-in-nodejs
var mysql = require('mysql');
var connection = mysql.createConnection({
host : '127.0.0.1',
user : 'root',
password : '',
database : 'chat'
});
connection.connect(function(err) {
if (err) throw err;
});
module.exports = connection;
저번에 공부했던거와 연장 지으면 node js는 비동기적으로 작동하니 connection보다 pool을 사용하는 것이 월등히 좋다고 한다... 생각보다 간단한 문제를 고민하고 있었다. 이렇게 또 배운다...
https://www.madhur.co.in/blog/2016/09/05/nodejs-connection-pooling.html