본문 바로가기
Server/NodeJs

[NodeJS] NestJs MSSQL 연결하기

by kigo23 2023. 3. 24.
반응형

작업환경 : node v16.19.1, nest v9.2

 

npm에서 mssql, @types/mssql 패키지를 설치합니다.

(typescript환경이 아니라면 @types/mssql은 설치안하셔도 됩니다. 저는 nestjs를 사용했기 때문에 설치했습니다.)

npm i mssql @types/mssql

 

제가 설치한 버전입니다.
    "mssql": "^9.1.1",
    "@types/mssql": "^8.1.2",

 

root에 dbconfig.ts 파일을 만들고 접속정보를 입력해줍니다.

(※dbconfig.ts는 꼭 gitignore에 등록해서 git서버에 올라가지 않도록 주의합니다)

//dbconfig.ts
export const mssqlDbConfig = {
  user: 'USER',
  password: 'PASSWORD',
  server: '서버정보(ip)',
  database: '연결할 DB',
  options: {
    encrypt: false,
  },
};

 

src폴더에 mssql.ts 파일을 만들고 dbconfig.ts와  mssql 패키지를 import합니다.

그리고 쿼리를 실행시킬 함수를 만들어줍니다.

import { mssqlDbConfig } from 'dbconfig';
import * as mssql from 'mssql';

export async function msQuery(query: string) {
  const pool = new mssql.ConnectionPool(mssqlDbConfig);
  await pool.connect(); //DB 연결
  const result = await pool.query(query); //query 실행
  await pool.close(); //연결 해제

  return result;
}

 

main.ts에서 mssql.ts를 import 하고 쿼리가 잘 실행되는지 확인해봅니다.

import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import { msQuery } from 'src/mssql';

async function init() {
  const app = await NestFactory.create(AppModule);
  app.enableCors();

  let result = await msQuery("select 1");
  
  console.log(result);
  
  await app.listen(3001);
}

init();

 

4번째 라인에 셀렉트 내용이 출력되는 것을 확인하실 수 있습니다.

 

궁금한점이 있다면 댓글로 남겨주시면 답변해드리겠습니다.