Node에서 mssql 사용하기
단독으로 mssql을 사용할 경우 참고하세요.
mssql라이브러리를 참고해서 간략하게 사용하는 예제입니다.
설치는 다음과 같습니다.
$ npm install mssql
기본 사용은 가이드에 다음과 같이 나옵니다.
const sql = require('mssql')
async () => {
try {
// make sure that any items are correctly URL encoded in the connection string
await sql.connect('mssql://username:password@localhost/database')
const result = await sql.query`select * from mytable where id = ${value}`
console.dir(result)
} catch (err) {
// ... error checks
} finally {
sql.close();
}
}
하지만, 일반적으로 Connection을 생성하여 사용하기 보다, Pool을 사용합니다.
const sql = require('mssql')
// async/await style:
const pool = new sql.ConnectionPool(config);
pool.on('error', err => {
// ... error handler
})
async function messageHandler() {
const poolConnect = pool.connect(); // ensures that the pool has been created
try {
const request = pool.request(); // or: new sql.Request(pool)
const result = await request.query('select 1 as number')
console.dir(result)
return result;
} catch (err) {
console.error('SQL error', err);
} finally {
await pool.close();
}
}
// when your application exits
async function finishThisApplication() {
await sql.close();
}
Pool을 사용할 경우 프로그램이 종료 될때 finishThisApplication
메소드를 호출하여 모든 connection을 닫아 줍니다.
사용하면서 어려웠던 것이 close을 언제 어떻게 해야 하는지 명확하게 나오지 않아서 어려웠습니다.
위와 같이 사용할 경우 오류가 발생하지는 않았습니다.