NodeJS express with mssql

조혁균·2021년 7월 16일
0
post-thumbnail

지인의 요청과, 호기심 발동 등 여러 원동력을 얻게 되어
NodeJS로 간단하게 mssql에서 쿼리 조회한 정보를 express response.send()html에 보여주려고 한다.

mssql은 도커로 올려두었는데..(참고 : 빠른 시작: Docker에서 SQL Server 컨테이너 이미지 실행)

아래 코드처럼 썼더니 에러가 난다.(참고 : 3단계: SQL에 연결하는 개념 증명)

/**
 * Required External Modules
 */

 const express = require("express");
 const port = 3000;
 const path = require("path");

 const app = express();

 app.get('/', function(req, res) {
    executeStatement();
   res.send('<h1>hello soohyeok.</h1>');
 });

app.listen(port, function() {
  console.log(`Server is running on localhost${port}`);
});

var Connection = require('tedious').Connection;  
var config = {  
    server: '',  //update me
    authentication: {
        type: 'default',
        options: {
            userName: '', //update me
            password: ''  //update me
        }
    },
    options: {
        // If you are on Microsoft Azure, you need encryption:
        encrypt: true,
        database: 'TestDB'  //update me
    }
}; 
var connection = new Connection(config);  
connection.on('connect', function(err) {  
    // If no error, then good to proceed.  
    console.log("Connected");  
    executeStatement();  
});  

connection.connect();

var Request = require('tedious').Request;  
var TYPES = require('tedious').TYPES;  

function executeStatement() {  
  request = new Request("SELECT * FROM Inventory WHERE quantity > 152;", function(err, rowCount, rows) {  
    if (err) {  
      console.log("Error: ", err);
    } else {console.log(rowCount + ' rows');}
    connection.close();
  });
  
  
  connection.execSql(request);  
}  

에러 상태를 보니 요청 타이밍 문제가 발생한 것 같다.

Error:  RequestError {message: 'Requests can only be made in the LoggedIn state, not the Connecting state', code: 'EINVALIDSTATE', stack: 'RequestError: Requests can only be made in th…node_modules/tedious/lib/connector.js:195:16)'}
arg1: RequestError {message: 'Requests can only be made in the LoggedIn state, not the Connecting state', code: 'EINVALIDSTATE', stack: 'RequestError: Requests can only be made in th…node_modules/tedious/lib/connector.js:195:16)'}
profile
FE DEVELOPER

0개의 댓글