개발하는 고양이 오이

6. [React] Node.js - MSSQL연동 + Setting the TLS ServerName to an IP address is not permitted by RFC 6066 오류 해결 본문

React

6. [React] Node.js - MSSQL연동 + Setting the TLS ServerName to an IP address is not permitted by RFC 6066 오류 해결

Cucum 2022. 10. 17. 10:18

안녕하세요. 구글링을 하다보면, React에서 Node.js를 이용하여 Mysql연동은 많이 봤으나, Mssql연동 방법에 대해서는 많지 않아서 공유하고자 올립니다.

 

우선, React는 클라이언트 사이드로, Mssql와 연동하려면 Node.js를 이용하여 서버 사이드로 연동을 해야합니다.

 

① mssql 라이브러리 설치

npm install mssql

 

② Node.js 서버 생성

생성한 리액트 애플리케이션에 server 폴더를 생성하고, 내부에 server.js파일을 생성합니다.

 

③ server.js

const express = require('express');

const app = express();
app.listen(8081, function () {
    console.log('listening on 8081')
});

// mssql 연동 -> 실제 본인의 mssql 값 작성해주면 됩니다.
var mssql = require("mssql");
var dbConfig_user = {
    server: "xxx.xxx.x.xx",
    database: "xxx",
    user: "xx",
    password: "xx",
    port: 00
};

mssql.connect(dbConfig_user, function(err){
    if(err){
        return console.error('error : ', err);
    }
    console.log('MSSQL 연결 완료')
});

 

※ server.js 코드 설명 ( app.listen() )

app.listen() : 원하는 포트에 서버를 오픈하는 문법

.listen(서버를 오픈할 포트번호, function() {
	//서버 오픈 시 실행할 코드
})

= 'listen() 이라는 함수를 동작시킨 후에 function() { } 내에 있는 코드를 실행해주세요' 라는 의미

 

④ 실행

Terminal 창에 다음과 같이 입력

node server/server.js

 

★ 오류

DeprecationWarning: Setting the TLS ServerName to an IP address is not permitted by RFC 6066. This will be ignored in a future version.

 

해당 오류가 발생했다면, mssql을 연동해주는 부분에 다음과 같이 코드를 추가해줍니다.

// mssql 연동
var mssql = require("mssql");
var dbConfig_user = {
    server: "xxx.xxx.x.xx",
    database: "xxx",
    user: "xx",
    password: "xx",
    port: 00,  
    options: {      // Setting the TLS ServerName to an IP address is not permitted by RFC 6066. 오류 해결
        encrypt: false,
        trustServerCertificate: true,
    } 
};

 

(참고)

https://stackoverflow.com/questions/68528360/node10212dep0123deprecationwarningsetting-the-tls-servername-to-an-ipaddress

 

node:10212[DEP0123]DeprecationWarning:Setting the TLS ServerName to an IPaddress is not permitted by RFC 6066.This will be ignor

Below is my nodejs code to connect to a mssql database and query data const sql = require('mssql') export class GetJDBCCasedata { async fetchData(wellid, wellboreid, designid) { var result

stackoverflow.com

 

⑤ 재실행

(Ctrl+C 를 클릭하면 실행하던 서버가 정지됩니다.)

후에 다시 Terminal 창에 다음과 같이 입력합니다.

node server/server.js

 

다음과 같이 콘솔 창에 'MSSQL 연결 완료' 문구까지 뜨는 것을 확인했습니다.

 

⑥ url에 localhost:8081 입력

이때, 8081은 server.js 파일에서 app.listen 내부에 작성한 포트 번호입니다.

Cannot GET / 라는 문구가 표시된다면 서버가 잘 살아있는 것입니다.

만약, 서버가 죽어있다면 아래 이미지처럼 표시 될 것입니다.

감사합니다.