반응형
이 버전에서는 TOC를 지원하지 않습니다. (ex. 모바일)
0. mssql 모듈 설치
$ npm i mssql
1. db config 파일 생성
: 서버와 개발환경 분리를 위하여, config파일은 분리하여 관리하는 것이 좋습니다.
// dbconfig.js
module.exports = {
port:{DB서버 포트}
, user:'{계정아이디}'
, password:'{계정비밀번호}'
, server:'{DB서버 아이피}'
, database:'{데이터베이스 명}'
, options: {
encrypt: true, // Use this if you're on Windows Azure
}
, pool: { max: 5, min: 1, idleTimeoutMillis: 30000, }
, trustServerCertificate: true
}
2. db pool 생성
: db connection을 관리할 pool 생성
// sql.js
const sql = require('mssql');
const config = require('./dbconfig');
const pool = new sql.ConnectionPool(config)
.connect()
.then(pool => {
console.log('Connected to MSSQL')
return pool
})
.catch(err => console.log('Database Connection Failed! Bad Config: ', err))
module.exports = pool;
3. db query 실행
: 생성한 pool의 sql을 server단에서 import 받아서 사용
// index.js
const express = require('express');
const app = express();
const PORT = process.env.PORT || 8080; // 8080포트로 지정
const pool = require('./sql'); // 사전에 생성산 pool 로드
// http://localhost:8080/api/test로 들어온 경우의 함수 생성
app.get('/api/test', async (req, res) => {
try{
const query = await pool; // Query 실행을 위한 Pool 지정
const result = await query.request() // Query 요청
.input('KEY', 'ASDF') // 하단 query에 @로 들어가는 파라미터 값을 사전에 설정
.query("SELECT TOP 10 * FROM TABLE_NAME WHERE KEY = @KEY");
res.send(result); // Response에 결과값을 포함하여 전달
}catch(err){
res.status(500); // 에러 발생시 Response 상태를 서버에러인 500에러로 세팅
res.send(err.message); // 에러 발생시 Response에 서버에러 내용 포함 전달
}
})
// 서버 실행
app.listen(PORT, () => {
console.log(`Server On : http://localhost:${PORT}/`);
})
반응형
'개발 창고 > NodeJS' 카테고리의 다른 글
[Puppeteer] 현재 페이지 URL 가져오기 (0) | 2022.09.26 |
---|---|
[Database] My Batis 설치 (0) | 2022.05.03 |
[FileSystem] 폴더 내 목록 불러오기 (0) | 2022.04.12 |
[File] 웹서버에 정적 파일 접근 기능 추가하기 (0) | 2022.03.31 |
[ERROR] npm install --save react-three-fbx-viewer 설치 에러 (0) | 2022.03.23 |